Imported Upstream version 3.4 upstream/3.4
authorJinWang An <jinwang.an@samsung.com>
Tue, 27 Dec 2022 03:15:01 +0000 (12:15 +0900)
committerJinWang An <jinwang.an@samsung.com>
Tue, 27 Dec 2022 03:15:01 +0000 (12:15 +0900)
814 files changed:
.tarball-version
AUTHORS
ChangeLog
ChangeLog-2008
GNUmakefile
INSTALL
Makefile.am
Makefile.in
NEWS
README
aclocal.m4
bootstrap
build-aux/announce-gen
build-aux/ar-lib [new file with mode: 0755]
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/install-sh
build-aux/mdate-sh
build-aux/missing
build-aux/snippet/arg-nonnull.h
build-aux/snippet/c++defs.h
build-aux/snippet/unused-parameter.h
build-aux/snippet/warn-on-use.h
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
dist-check.mk
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/accept.c [new file with mode: 0644]
gnulib-tests/arpa_inet.in.h [new file with mode: 0644]
gnulib-tests/bind.c [new file with mode: 0644]
gnulib-tests/connect.c [new file with mode: 0644]
gnulib-tests/dtotimespec.c [new file with mode: 0644]
gnulib-tests/fdopen.c
gnulib-tests/fpucw.h
gnulib-tests/ftruncate.c [new file with mode: 0644]
gnulib-tests/getcwd-lgpl.c
gnulib-tests/getpagesize.c
gnulib-tests/gnulib.mk
gnulib-tests/hash-pjw.c
gnulib-tests/hash-pjw.h
gnulib-tests/inet_pton.c [new file with mode: 0644]
gnulib-tests/init.sh
gnulib-tests/ioctl.c [new file with mode: 0644]
gnulib-tests/listen.c [new file with mode: 0644]
gnulib-tests/macros.h
gnulib-tests/nanosleep.c [new file with mode: 0644]
gnulib-tests/nap.h [new file with mode: 0644]
gnulib-tests/netinet_in.in.h [new file with mode: 0644]
gnulib-tests/perror.c [new file with mode: 0644]
gnulib-tests/pipe.c [new file with mode: 0644]
gnulib-tests/putenv.c
gnulib-tests/same-inode.h
gnulib-tests/select.c [new file with mode: 0644]
gnulib-tests/setlocale.c
gnulib-tests/setsockopt.c [new file with mode: 0644]
gnulib-tests/signature.h
gnulib-tests/sleep.c
gnulib-tests/snprintf.c
gnulib-tests/socket.c [new file with mode: 0644]
gnulib-tests/sockets.c [new file with mode: 0644]
gnulib-tests/sockets.h [new file with mode: 0644]
gnulib-tests/stdalign.in.h [new file with mode: 0644]
gnulib-tests/strerror_r.c [new file with mode: 0644]
gnulib-tests/symlink.c
gnulib-tests/sys_ioctl.in.h [new file with mode: 0644]
gnulib-tests/sys_select.in.h [new file with mode: 0644]
gnulib-tests/sys_socket.c [new file with mode: 0644]
gnulib-tests/sys_socket.in.h [new file with mode: 0644]
gnulib-tests/sys_uio.in.h [new file with mode: 0644]
gnulib-tests/test-accept.c [new file with mode: 0644]
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 [moved from gnulib-tests/test-malloc-gnu.c with 76% similarity]
gnulib-tests/test-binary-io.c
gnulib-tests/test-bind.c [new file with mode: 0644]
gnulib-tests/test-bitrotate.c
gnulib-tests/test-btowc.c
gnulib-tests/test-c-ctype.c
gnulib-tests/test-c-stack.c
gnulib-tests/test-c-strcasecmp.c
gnulib-tests/test-c-strncasecmp.c
gnulib-tests/test-close.c
gnulib-tests/test-connect.c [new file with mode: 0644]
gnulib-tests/test-ctype.c [moved from gnulib-tests/test-usleep.c with 68% similarity]
gnulib-tests/test-dirname.c
gnulib-tests/test-dup2.c
gnulib-tests/test-environ.c
gnulib-tests/test-errno.c
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.c
gnulib-tests/test-fputc.c
gnulib-tests/test-fread.c
gnulib-tests/test-freopen-safer.c
gnulib-tests/test-freopen.c
gnulib-tests/test-fstat.c
gnulib-tests/test-ftruncate.c [new file with mode: 0644]
gnulib-tests/test-ftruncate.sh [new file with mode: 0755]
gnulib-tests/test-fwrite.c
gnulib-tests/test-getcwd-lgpl.c
gnulib-tests/test-getdtablesize.c
gnulib-tests/test-getopt.c
gnulib-tests/test-getopt.h
gnulib-tests/test-getopt_long.h
gnulib-tests/test-gettimeofday.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 [new file with mode: 0644]
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 [new file with mode: 0644]
gnulib-tests/test-isblank.c [new file with mode: 0644]
gnulib-tests/test-iswblank.c
gnulib-tests/test-langinfo.c
gnulib-tests/test-listen.c [new file with mode: 0644]
gnulib-tests/test-locale.c
gnulib-tests/test-localeconv.c
gnulib-tests/test-lstat.c
gnulib-tests/test-lstat.h
gnulib-tests/test-malloca.c
gnulib-tests/test-mbrtowc-w32.c
gnulib-tests/test-mbrtowc.c
gnulib-tests/test-mbrtowc5.sh [new file with mode: 0755]
gnulib-tests/test-mbscasecmp.c
gnulib-tests/test-mbsinit.c
gnulib-tests/test-mbsrtowcs.c
gnulib-tests/test-mbsstr1.c
gnulib-tests/test-mbsstr2.c
gnulib-tests/test-mbsstr3.c
gnulib-tests/test-memchr.c
gnulib-tests/test-nanosleep.c [new file with mode: 0644]
gnulib-tests/test-netinet_in.c [new file with mode: 0644]
gnulib-tests/test-nl_langinfo.c
gnulib-tests/test-open.c
gnulib-tests/test-open.h
gnulib-tests/test-pathmax.c
gnulib-tests/test-perror.c [new file with mode: 0644]
gnulib-tests/test-perror.sh [new file with mode: 0755]
gnulib-tests/test-perror2.c [new file with mode: 0644]
gnulib-tests/test-pipe.c [new file with mode: 0644]
gnulib-tests/test-quotearg-simple.c
gnulib-tests/test-quotearg.h
gnulib-tests/test-raise.c
gnulib-tests/test-rawmemchr.c [new file with mode: 0644]
gnulib-tests/test-readlink.c
gnulib-tests/test-readlink.h
gnulib-tests/test-regex.c
gnulib-tests/test-select-fd.c [new file with mode: 0644]
gnulib-tests/test-select-in.sh [new file with mode: 0755]
gnulib-tests/test-select-out.sh [new file with mode: 0755]
gnulib-tests/test-select-stdin.c [new file with mode: 0644]
gnulib-tests/test-select.c [new file with mode: 0644]
gnulib-tests/test-select.h [new file with mode: 0644]
gnulib-tests/test-setenv.c
gnulib-tests/test-setlocale1.c
gnulib-tests/test-setlocale2.c
gnulib-tests/test-setsockopt.c [new file with mode: 0644]
gnulib-tests/test-sh-quote.c
gnulib-tests/test-sigaction.c
gnulib-tests/test-signal-h.c
gnulib-tests/test-sigprocmask.c
gnulib-tests/test-sleep.c
gnulib-tests/test-snprintf.c
gnulib-tests/test-sockets.c [new file with mode: 0644]
gnulib-tests/test-stat-time.c
gnulib-tests/test-stat.c
gnulib-tests/test-stat.h
gnulib-tests/test-stdalign.c [new file with mode: 0644]
gnulib-tests/test-stdbool.c
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 [new file with mode: 0644]
gnulib-tests/test-strftime.c
gnulib-tests/test-striconv.c
gnulib-tests/test-string.c
gnulib-tests/test-strings.c
gnulib-tests/test-strnlen.c
gnulib-tests/test-strtoull.c
gnulib-tests/test-strtoumax.c
gnulib-tests/test-symlink.c
gnulib-tests/test-symlink.h
gnulib-tests/test-sys_ioctl.c [new file with mode: 0644]
gnulib-tests/test-sys_select.c [new file with mode: 0644]
gnulib-tests/test-sys_socket.c [new file with mode: 0644]
gnulib-tests/test-sys_stat.c
gnulib-tests/test-sys_time.c
gnulib-tests/test-sys_types.c
gnulib-tests/test-sys_uio.c [new file with mode: 0644]
gnulib-tests/test-sys_wait.c
gnulib-tests/test-sys_wait.h
gnulib-tests/test-time.c
gnulib-tests/test-timespec.c [new file with mode: 0644]
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
gnulib-tests/test-vc-list-files-cvs.sh
gnulib-tests/test-vc-list-files-git.sh
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-wctype-h.c
gnulib-tests/test-wcwidth.c
gnulib-tests/test-xalloc-die.c
gnulib-tests/test-xalloc-die.sh
gnulib-tests/test-xstrtol.c
gnulib-tests/test-xstrtol.sh
gnulib-tests/test-xvasprintf.c
gnulib-tests/timespec-add.c [new file with mode: 0644]
gnulib-tests/timespec-sub.c [new file with mode: 0644]
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/usleep.c [deleted file]
gnulib-tests/w32sock.h [new file with mode: 0644]
gnulib-tests/wctob.c
gnulib-tests/wctomb-impl.h
gnulib-tests/wctomb.c
gnulib-tests/zerosize-ptr.h
lib/Makefile.am
lib/Makefile.in
lib/alloca.in.h
lib/allocator.h
lib/anytostr.c
lib/areadlink.c
lib/areadlink.h
lib/argmatch.c [moved from gnulib-tests/argmatch.c with 99% similarity]
lib/argmatch.h [moved from gnulib-tests/argmatch.h with 97% similarity]
lib/asnprintf.c
lib/asprintf.c
lib/assure.h [new file with mode: 0644]
lib/basename-lgpl.c
lib/basename.c
lib/binary-io.c
lib/binary-io.h
lib/bitrotate.h
lib/btowc.c
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/careadlinkat.c
lib/careadlinkat.h
lib/close.c
lib/cmpbuf.c
lib/cmpbuf.h
lib/config.charset
lib/config.hin
lib/ctype.in.h [new file with mode: 0644]
lib/diffseq.h
lib/dirname-lgpl.c
lib/dirname.c
lib/dirname.h
lib/dosname.h
lib/dup2.c
lib/errno.in.h
lib/error.c
lib/error.h
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 [new file with mode: 0644]
lib/filenamecat-lgpl.c
lib/filenamecat.c
lib/filenamecat.h
lib/float+.h
lib/float.c
lib/float.in.h
lib/fnmatch.c
lib/fnmatch.in.h
lib/fnmatch_loop.c
lib/freopen-safer.c
lib/freopen.c
lib/fstat.c
lib/getdtablesize.c
lib/getopt.c
lib/getopt.in.h
lib/getopt1.c
lib/getopt_int.h
lib/gettext.h
lib/gettime.c
lib/gettimeofday.c
lib/gnulib.mk
lib/hard-locale.c
lib/hard-locale.h
lib/hash.c
lib/hash.h
lib/iconv.c
lib/iconv.in.h
lib/iconv_close.c
lib/iconv_open.c
lib/ignore-value.h
lib/intprops.h
lib/inttostr.h
lib/inttypes.in.h
lib/isblank.c [new file with mode: 0644]
lib/iswblank.c
lib/itold.c
lib/langinfo.in.h
lib/localcharset.c
lib/localcharset.h
lib/locale.in.h
lib/localeconv.c
lib/lstat.c
lib/malloc.c
lib/malloca.c
lib/malloca.h
lib/mbchar.c
lib/mbchar.h
lib/mbiter.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.c
lib/mbuiter.h
lib/memchr.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.c
lib/open.c
lib/pathmax.h
lib/prepargs.c
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
lib/propername.h
lib/quote.h
lib/quotearg.c
lib/quotearg.h
lib/raise.c
lib/rawmemchr.c [new file with mode: 0644]
lib/rawmemchr.valgrind [new file with mode: 0644]
lib/readlink.c
lib/ref-add.sin
lib/ref-del.sin
lib/regcomp.c
lib/regex.c
lib/regex.h
lib/regex_internal.c
lib/regex_internal.h
lib/regexec.c
lib/secure_getenv.c
lib/setenv.c [moved from gnulib-tests/setenv.c with 99% similarity]
lib/sh-quote.c
lib/sh-quote.h
lib/sig-handler.h
lib/sigaction.c
lib/signal.in.h
lib/sigprocmask.c
lib/size_max.h
lib/stat-time.h
lib/stat.c
lib/stdarg.in.h
lib/stdbool.in.h
lib/stddef.in.h
lib/stdint.in.h
lib/stdio--.h
lib/stdio-safer.h
lib/stdio.in.h
lib/stdlib.in.h
lib/str-kmp.h
lib/strcasecmp.c
lib/streq.h
lib/strerror-override.c
lib/strerror-override.h
lib/strerror.c
lib/strftime.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/strndup.c
lib/strnlen.c
lib/strnlen1.c
lib/strnlen1.h
lib/strptime.c
lib/strtoimax.c
lib/strtol.c
lib/strtoul.c
lib/strtoull.c
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 [new file with mode: 0644]
lib/time.in.h
lib/time_r.c
lib/time_rz.c [new file with mode: 0644]
lib/timegm.c [new file with mode: 0644]
lib/timespec.h
lib/trim.c
lib/trim.h
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/unlocked-io.h
lib/unsetenv.c [moved from gnulib-tests/unsetenv.c with 97% similarity]
lib/vasnprintf.c
lib/vasnprintf.h
lib/vasprintf.c
lib/verify.h
lib/version-etc-fsf.c
lib/version-etc.c
lib/version-etc.h
lib/wchar.in.h
lib/wcrtomb.c
lib/wctype.in.h
lib/wcwidth.c
lib/xalloc-die.c
lib/xalloc-oversized.h
lib/xalloc.h
lib/xasprintf.c
lib/xfreopen.c
lib/xmalloc.c
lib/xreadlink.c
lib/xreadlink.h
lib/xsize.h
lib/xstriconv.c
lib/xstriconv.h
lib/xstrndup.c
lib/xstrndup.h
lib/xstrtol-error.c
lib/xstrtol.c
lib/xstrtol.h
lib/xvasprintf.c
lib/xvasprintf.h
m4/00gnulib.m4
m4/absolute-header.m4 [new file with mode: 0644]
m4/alloca.m4
m4/arpa_inet_h.m4 [new file with mode: 0644]
m4/btowc.m4
m4/c-stack.m4
m4/clock_time.m4
m4/close.m4
m4/codeset.m4
m4/config-h.m4
m4/configmake.m4
m4/ctype.m4 [new file with mode: 0644]
m4/dirname.m4
m4/double-slash-root.m4
m4/dup2.m4
m4/eealloc.m4
m4/environ.m4
m4/errno_h.m4
m4/error.m4
m4/exponentd.m4
m4/extensions.m4
m4/extern-inline.m4
m4/fcntl-o.m4
m4/fcntl.m4
m4/fcntl_h.m4
m4/fdopen.m4
m4/filenamecat.m4
m4/flexmember.m4 [new file with mode: 0644]
m4/float_h.m4
m4/fnmatch.m4
m4/fpieee.m4
m4/freopen.m4
m4/fstat.m4
m4/ftruncate.m4 [new file with mode: 0644]
m4/getcwd.m4
m4/getdtablesize.m4
m4/getopt.m4
m4/getpagesize.m4
m4/gettext.m4
m4/gettime.m4
m4/gettimeofday.m4
m4/glibc21.m4
m4/gnu-make.m4
m4/gnulib-common.m4
m4/gnulib-comp.m4
m4/hard-locale.m4
m4/iconv.m4
m4/iconv_h.m4
m4/iconv_open.m4
m4/include_next.m4
m4/inet_pton.m4 [new file with mode: 0644]
m4/inline.m4
m4/intlmacosx.m4
m4/intmax_t.m4
m4/inttostr.m4
m4/inttypes-pri.m4
m4/inttypes.m4
m4/inttypes_h.m4
m4/ioctl.m4 [new file with mode: 0644]
m4/isblank.m4 [new file with mode: 0644]
m4/iswblank.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/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/longlong.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/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/nanosleep.m4 [new file with mode: 0644]
m4/netinet_in_h.m4 [new file with mode: 0644]
m4/nl_langinfo.m4
m4/nls.m4
m4/nocrash.m4
m4/off_t.m4
m4/open.m4
m4/pathmax.m4
m4/perror.m4 [new file with mode: 0644]
m4/pipe.m4 [new file with mode: 0644]
m4/po.m4
m4/printf.m4
m4/progtest.m4
m4/putenv.m4
m4/quote.m4
m4/quotearg.m4
m4/raise.m4
m4/rawmemchr.m4 [new file with mode: 0644]
m4/readlink.m4
m4/regex.m4
m4/secure_getenv.m4
m4/select.m4 [new file with mode: 0644]
m4/setenv.m4
m4/setlocale.m4
m4/sigaction.m4
m4/signal_h.m4
m4/signalblocking.m4
m4/size_max.m4
m4/sleep.m4
m4/snprintf.m4
m4/socketlib.m4 [new file with mode: 0644]
m4/sockets.m4 [new file with mode: 0644]
m4/socklen.m4 [new file with mode: 0644]
m4/sockpfaf.m4 [new file with mode: 0644]
m4/ssize_t.m4
m4/stat-time.m4
m4/stat.m4
m4/stdalign.m4 [new file with mode: 0644]
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/strcase.m4
m4/strerror.m4
m4/strerror_r.m4 [new file with mode: 0644]
m4/strftime.m4
m4/string_h.m4
m4/strings_h.m4
m4/strndup.m4
m4/strnlen.m4
m4/strptime.m4
m4/strtoull.m4
m4/strtoumax.m4
m4/symlink.m4
m4/sys_ioctl_h.m4 [new file with mode: 0644]
m4/sys_select_h.m4 [new file with mode: 0644]
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 [new file with mode: 0644]
m4/sys_wait_h.m4
m4/tempname.m4
m4/time_h.m4
m4/time_r.m4
m4/time_rz.m4 [new file with mode: 0644]
m4/timegm.m4 [new file with mode: 0644]
m4/timespec.m4
m4/tm_gmtoff.m4
m4/unistd_h.m4
m4/unlocked-io.m4
m4/usleep.m4 [deleted file]
m4/vararrays.m4
m4/vasnprintf.m4
m4/vasprintf.m4
m4/version-etc.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/xalloc.m4
m4/xsize.m4
m4/xstrndup.m4
m4/xstrtol.m4
m4/xvasprintf.m4
maint.mk
man/Makefile.am
man/Makefile.in
man/cmp.1
man/diff.1
man/diff3.1
man/help2man
man/sdiff.1
po/LINGUAS
po/Makefile.in.in
po/Makevars
po/POTFILES.in
po/Rules-quot
po/ca.gmo
po/ca.po
po/cs.gmo
po/cs.po
po/da.gmo
po/da.po
po/de.gmo
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.gmo
po/fi.po
po/fr.gmo
po/fr.po
po/ga.gmo
po/ga.po
po/gl.gmo
po/gl.po
po/he.gmo
po/he.po
po/hr.gmo
po/hr.po
po/hu.gmo
po/hu.po
po/id.gmo
po/id.po
po/it.gmo
po/it.po
po/ja.gmo
po/ja.po
po/lv.gmo
po/lv.po
po/ms.gmo
po/ms.po
po/nb.gmo [new file with mode: 0644]
po/nb.po [new file with mode: 0644]
po/nl.gmo
po/nl.po
po/pl.gmo
po/pl.po
po/pt_BR.gmo
po/pt_BR.po
po/ro.gmo
po/ro.po
po/ru.gmo
po/ru.po
po/sr.gmo
po/sr.po
po/sv.gmo
po/sv.po
po/tr.gmo
po/tr.po
po/uk.gmo
po/uk.po
po/vi.gmo
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/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/bignum [new file with mode: 0755]
tests/binary
tests/brief-vs-stat-zero-kernel-lies [new file with mode: 0755]
tests/colors [new file with mode: 0755]
tests/envvar-check [new file with mode: 0644]
tests/help-version
tests/ignore-matching-lines [new file with mode: 0755]
tests/init.sh
tests/no-newline-at-eof
tests/strcoll-0-names [new file with mode: 0755]

index eb39e53..2f4b607 100644 (file)
@@ -1 +1 @@
-3.3
+3.4
diff --git a/AUTHORS b/AUTHORS
index d091302..58b097a 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -33,7 +33,7 @@ Patrick D'Cruze
 Eli Zaretskii
 
 
-Copyright (C) 2001, 2006, 2009-2013 Free Software Foundation, Inc.
+Copyright (C) 2001, 2006, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 This file is part of GNU diffutils.
 
index 7d4368f..a394872 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,471 @@
+2016-08-08  Jim Meyering  <meyering@fb.com>
+
+       version 3.4
+       * NEWS: Record release date.
+
+2016-08-06  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest
+
+       tests: tweak built_programs definition
+       * tests/Makefile.am (built_programs): Adjust to work around what
+       may be a problem due to interaction between Solaris 10's /bin/sh
+       and an old version of GNU make. Reported by Dagobert Michelsen
+       in https https://bugs.gnu.org/24137.
+
+2016-08-02  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest
+
+       tests: skip a /proc/self-dependent test on the Hurd
+       * tests/brief-vs-stat-zero-kernel-lies: The Hurd's /proc/self
+       is not useful, so detect that and skip the test that requires it.
+       Reported by Assaf Gordon in https://debbugs.gnu.org/24121#29
+
+2016-08-01  Jim Meyering  <meyering@fb.com>
+
+       tests/colors: fix portability problem with touch --date
+       * tests/colors (epoch): Don't use GNU touch's --date=$epoch option.
+       Use the portable -t 197001010000.00.
+       Reported by Assaf Gordon in https://debbugs.gnu.org/24121#8
+
+       build: Solaris 9: avoid link failure due to isblank use
+       * bootstrap.conf (gnulib_modules): Add isblank, to avoid a link
+       error on Solaris 9 Sparc.  Reported by Dagobert Michelsen.
+
+       test: improve test infrastructure
+       * tests/envvar-check: New file, copied from grep, with the addition
+       of the EDITOR and GREP_OPTIONS envvar names.
+       * tests/Makefile.am (EXTRA_DIST): Add it.
+       (TESTS_ENVIRONMENT): Revamp, to be more like that of grep.
+
+2016-07-31  Jim Meyering  <meyering@fb.com>
+
+       maint: remove gl/lib/reg*.c.diff; no longer needed
+       * gl/lib/regcomp.c.diff: Remove file, now that gnulib's
+       regcomp.c compiles regex.c with -Wno-unused-parameter.
+       * gl/lib/regex_internal.c.diff: This file induced a change to ensure
+       that the "Idx" type was unsigned and to remove a few "VAR < 0"
+       comparisons.  These days, it is probably fine to stay in sync with
+       gnulib/glibc's copies
+       of these files, so remove these patches, too.
+       * gl/lib/regexec.c.diff: Likewise.
+       Prompted by a report by Assaf Gordon and a suggestion from Paul Eggert.
+
+       tests: colors: fix a portability problem and work around a shell bug
+       * tests/colors (e): Fix a portability bug: use printf '\033'
+       rather than '\e' to generate the required byte sequence, since
+       for some shells (at least dash 0.5.8), the latter doesn't work.
+       Work around a shell bug whereby "local tab=$(printf '\t')"
+       would result in an empty value for "$tab": hoist each "tab"
+       definition up/out of its function to global scope.
+       Reported by Assaf Gordon in http://debbugs.gnu.org/24116#8
+
+2016-07-23  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest; and tests/init.sh
+       * gnulib: Update to latest.
+       * init.sh: Update from gnulib.
+
+2016-05-30  Jim Meyering  <meyering@fb.com>
+
+       maint: arrange for "make distcheck" to work with unreleased automake
+       * dist-check.mk (my-distcheck): Remove all .deps directories
+       before performing the recursive comparison.
+
+2016-05-24  Glenn Morris  <rgm@gnu.org>
+
+       doc: fix a reference to emacs' emerge node
+       * doc/diffutils.texi (Interactive Merging): Correct a reference to
+       emacs' emerge node: s/emerge/Emerge/.
+       This addresses http://debbugs.gnu.org/23613
+
+2016-04-30  Jim Meyering  <meyering@fb.com>
+
+       maint: arrange for better URLs in generated announcement message
+       * cfg.mk (url_dir_list): Define.  I had been correcting the generated
+       URLs by hand, just before the announcement.  This is better.
+
+2016-03-15  Jim Meyering  <meyering@fb.com>
+
+       maint: don't ignore gitlog-to-changelog failure
+       * Makefile.am (gen-ChangeLog): Don't ignore failure of
+       gitlog-to-changelog. This syncs to coreutils' copy of this rule.
+
+2016-03-06  Giuseppe Scrivano  <gscrivano@gnu.org>
+
+       diff: --color: fix an infinite recursion bug
+       * src/diff.h (presume_output_tty): New extern variable.
+       * src/diff.c (PRESUME_OUTPUT_TTY_OPTION): New enum.
+       (group_format_option): Add '-presume-output-tty'.
+       (main): Handle PRESUME_OUTPUT_TTY_OPTION.
+       * src/util.c: New variable `presume_output_tty'.
+       (check_color_output): Handle presume_output_tty.
+       (set_color_context): Call process_signals only when color_context is
+       not RESET_CONTEXT.
+       * tests/colors: Check that diff doesn't crash when interrupted
+       in the middle of a color sequence.
+
+       Reported by Gisle Vanem in http://debbugs.gnu.org/22067
+
+2016-01-31  Jim Meyering  <meyering@fb.com>
+
+       maint: update prereq version of gettext
+       * configure.ac: Increase designated gettext version to 0.19.2
+       * bootstrap.conf (buildreq): Likewise.
+       Remove now-unnecessary code to remove gettext-provided files.
+
+       gnulib: update to latest
+
+2016-01-01  Jim Meyering  <meyering@fb.com>
+
+       FIXME: src/diff3: plug a leak
+
+2016-01-01  Jim Meyering  <meyering@fb.com>
+
+       maint: update copyright year, bootstrap, init.sh
+       Run "make update-copyright" and then...
+
+       * gnulib: Update to latest.
+       * tests/init.sh: Update from gnulib.
+       * bootstrap: Likewise.
+
+2015-12-06  Jim Meyering  <meyering@fb.com>
+
+       diff --brief no longer mistakenly reports diff. with 0-sized /proc/ files
+       Normally, it is safe to assume two regular files are different when
+       their st_size values are different.  However, that assumption may
+       be invalid if either value is zero, as happens with files on Linux
+       /proc and /sys file systems. Since skipping this optimization will
+       usually cost very little (one read syscall, to read zero bytes),
+       it is fine to accommodate those unusual files.
+       * src/analyze.c (diff_2_files): Do not assume regular files differ
+       just because their st_size values differ when one or more is 0.
+       * src/diff.c (compare_files): Likewise.
+       * tests/brief-vs-proc-stat-zero: New test.
+       * tests/Makefile.am: Add it.
+       * NEWS (Bug fixes): Describe it.
+       Reported by Stephan Müller in http://debbugs.gnu.org/21942
+
+       tests: arrange to print any skipped-test explanation to tty, too
+       I noticed that when a test was skipped, the reason was not printed.
+       This fixes it.  In coreutils, this variable is set in init.cfg,
+       but there is no point in putting the definition so far from the
+       code that chooses the file descriptor number in tests/Makefile.am.
+       * tests/Makefile.am (TESTS_ENVIRONMENT) [stderr_fileno_]: Define
+       here (to 9), right next to the companion "9>&2".
+
+2015-11-29  Jim Meyering  <meyering@fb.com>
+
+       build: add gperf to the list of required programs
+       * bootstrap.conf (buildreq): Add gperf to the list.
+       Reported by Stephan Müller in http://debbugs.gnu.org/21945
+
+2015-11-29  Giuseppe Scrivano  <gscrivano@gnu.org>
+
+       tests: Add tests for --color and --palette
+       * tests/colors: New file.
+       * tests/Makefile.am (TESTS): Add colors.
+
+       doc: mention --color and --palette in NEWS
+
+       diff: add --palette
+       * bootstrap (gnulib_modules): Add 'argmatch'.
+       * doc/diffutils.texi: Add documentation for --palette
+       * src/diff.h (set_color_palette): New prototype.
+       * src/diff.c (set_color_palette): New function.
+       (color_palette): New variable.
+       * src/utils.c: Include "argmatch.h".
+       (struct bin_str): New struct.
+       (struct color_ext_type): New struct.
+       (color_indicator): New array.
+       (indicator_name): New array.
+       (indicator_no): New enum.
+       (parse_state): New enum.
+       (put_indicator): New function.
+       (get_funky_string): New function. Copied from coreutils ls.
+       (parse_diff_color):  New function. Copied from coreutils ls
+       "parse_ls_color" function.
+       (set_color_context): Use put_indicator instead of directly
+       outputting the sequence.
+       * po/POTFILES.in: Add 'lib/argmatch.c'
+
+       diff: add support for --color
+       * doc/diffutils.texi (diff Options): Add documentation for --color.
+       Copied from coreutils ls --color.
+       * src/context.c (pr_unidiff_hunk): Set the color context.
+       (print_context_header): Likewise.
+       (pr_context_hunk): Likewise.
+       * src/diff.h (enum colors_style): New enum to record when to use colors.
+       (colors_style): New variable to memorize the argument value.
+       (set_color_context): Add function definition.
+       * src/diff.c: : Define COLOR_OPTION.
+       (specify_colors_style): New function.
+       (longopts): Add --color.
+       (main): Handle --color argument.
+       (option_help_msgid): Add usage string for --color.
+       * src/normal.c (print_normal_hunk): Set the color context.
+       * src/side.c (print_1sdiff_line): Likewise.
+       * src/util.c (print_1_line_nl): New function.
+       (print_1_line): Make it a wrapper of 'print_1_line_nl'.
+       (colors_enabled): New boolean variable.
+       (begin_output): Call check_color_output once the output file is
+       configured.
+       (output_1_line): Periodically call `process_signals'.
+       (caught_signals): New sigset_t.
+       (colors_enabled): New boolean variable.
+       (interrupt_signal): New sig_atomic_t.
+       (stop_signal_count): New sig_atomic_t.
+       (check_color_output): New function.
+       (install_signal_handlers): Likewise. Copied from coreutils ls.
+       (process_signals): Likewise.  Copied from coreutils ls.
+       (set_color_context): New function.
+       (sighandler): Likewise.  Copied from coreutils ls.
+       (stophandler): Likewise.  Copied from coreutils ls.
+
+2015-09-24  Andreas Grünbacher  <agruen@gnu.org>
+
+       diff: Improve help text of option --label
+       * src/diff.c (option_help_msgid): Improve help text of option --label.
+
+2015-09-01  Jim Meyering  <meyering@fb.com>
+
+       build: correct man-page generation rule
+       The PATH was set incorrectly, so that the diff used by
+       help2man was the one from $PATH, rather than the just-built
+       one.
+       * man/Makefile.am (bin_dir): New variable, to...
+       (dist_man1_MANS): ...prepend ../src to PATH, not just "..".
+       Also, add a test to ensure that each $(bin_dir)/$$base is
+       executable, so this doesn't happen again.
+       In http://debbugs.gnu.org/21023, Rodrigo Valiña
+       Gutiérrez reported that diff.1 from the diffutils-3.3 tarball
+       contained no description of the then-new --no-dereference option.
+
+2015-07-10  Jim Meyering  <meyering@fb.com>
+
+       doc: --no-dereference: improve wording/description
+       * doc/diffutils.texi (Comparing Directories): Correct grammar.
+       (diff Options) [--no-dereference]: Say a little more.
+
+2015-01-01  Jim Meyering  <meyering@fb.com>
+
+       maint: update copyright year ranges to include 2015; update gnulib
+
+2014-12-12  KO Myung-Hun  <komh@chollian.net>
+
+       diff: skip test if seek is not possible on OS/2 kLIBC
+       This fixes the problem that 'diff - file' and 'cat file | diff - file'
+       fail due to a seek failure with a message 'diff.exe: -: Invalid seek',
+       because seek does not work on stdin and a pipe on OS/2 kLIBC.
+
+       * src/io.c (sip): Set skip_test to true if seek is not possible on
+       OS/2 kLIBC.
+
+2014-12-09  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest
+
+2014-12-09  KO Myung-Hun  <komh78@gmail.com>
+
+       build: double-quote use of $PATH
+       * man/Makefile.am (dist_man1_MANS): On OS/2, PATH_SEPARATOR is ';',
+       but unquoted, that is interpreted as the shell's statement
+       terminator.  Quote it.
+
+2014-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: fix integer overflow problem with --tabsize
+       Reported by Tobias Stoeckmann in: http://bugs.gnu.org/18857
+       * src/diff.c (main): Don't overflow if INTMAX_MAX / 2 < tabsize.
+       * tests/bignum: New file, to test for this bug.
+       * tests/Makefile.am (TESTS): Add it.
+
+2014-09-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: mention diff -B fix in NEWS
+
+       diff: fix bug with diff -B and incomplete lines
+       Reported by Navin Kabra via Eric Blake in:
+       http://bugs.gnu.org/18402
+       * src/util.c (analyze_hunk): Don't mishandle incomplete
+       lines at end of file.
+       * tests/no-newline-at-eof: Test for the bug.
+
+       diff: fix performance bug with prefix computation
+       * src/io.c (find_identical_ends): Fix performance bug:
+       the test for when the prefix was needed messed up by
+       the 2002-02-28 integer-overflow fixes, causing performance to be
+       worse than it needed to be.
+
+2014-08-23  Jim Meyering  <meyering@fb.com>
+
+       gnulib: update to latest, as well as bootstrap
+
+       maint: update copyright year range in texinfo documentation
+       * doc/diffutils.texi: Update copyright.
+
+2014-04-15  Jim Meyering  <meyering@fb.com>
+
+       maint: update bug-reporting address
+       * README: Change bug-gnu-utils@... to bug-diffutils@gnu.org.
+       * doc/diffutils.texi: Likewise.
+       Reported by Jamie Landeg Jones.
+
+2014-03-26  Paul Eggert  <eggert@penguin.cs.ucla.edu>
+
+       diff: fix two "..." typos in --help output
+       * src/diff.c (option_help_msgid): Remove two "..." typos (Bug#17102).
+
+2014-03-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       doc: improve documentation about reading and stdin
+       See Bug#17075.
+       * doc/diffutils.texi (Comparison): Say that files need not be read.
+       (Invoking diff): Remove confusing remark about 'diff - -'.
+       It's not that useful, and it's not portable anyway.
+
+2014-02-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff, sdiff: minor integer overflow fixes
+       * src/context.c (find_hunk):
+       Simplify, now that 2 * context + 1 cannot overflow.
+       * src/diff.c (main):
+       * src/sdiff.c (interact):
+       Don't rely on undefined behavior on signed integer overflow.
+       * src/diff.c (main): Don't let contexts exceed CONTEXT_MAX.
+       * src/system.h (CONTEXT_MAX): New macro.
+
+       diff: fix bug with -I and overlapping hunks
+       Problem reported by Vincent Lefevre in <http://bugs.gnu.org/16864>.
+       * src/context.c (find_hunk): Threshold is CONTEXT only if
+       the second change is ignorable.
+       * tests/ignore-matching-lines: New test.
+       * tests/Makefile.am (TESTS): Add it.
+
+2014-02-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: remove TOO_EXPENSIVE heuristic
+       Problem reported by Vincent Lefevre in <http://bugs.gnu.org/16848>.
+       The simplest solution is to remove the TOO_EXPENSIVE heuristic
+       that I added to GNU diff in 1993.  Although appropriate for
+       circa-1993 hardware, these days the heuristic seems to be more
+       trouble than it's worth.
+       * NEWS: Document this.
+       * doc/diffutils.texi (Overview): Modernize citations.
+       Remove mention of TOO_EXPENSIVE heuristic.
+       * src/analyze.c (diff_2_files): Adjust to TOO_EXPENSIVE-related
+       API changes in gnulib's diffseq module.
+
+       build: update gnulib submodule to latest
+
+2014-01-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: exit with status 1, not 2, when binary files differ
+       Problem reported by Vincent Lefevre in <http://bugs.gnu.org/16608>.
+       * NEWS:
+       * doc/diffutils.texi (Binary, Invoking diff): Document this.
+       * src/analyze.c (briefly_report): Return void, not int.
+       All uses changed.  Do not futz with exit status.  Simplify.
+       * tests/binary: Adjust to match new behavior.
+
+2013-09-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: omit -Wsuggest-attribute=pure for lib
+       * configure.ac (WARN_CFLAGS): Omit -Wsuggest-attribute=pure
+       when compiling the lib subdirectory.  Reported for Fedora 19
+       by Eric Blake in <http://bugs.gnu.org/15463>.
+
+2013-08-22  Paul Eggert  <eggert@cs.ucla.edu>
+
+       cmp, diff, sdiff: tune by using rawmemchr
+       On my platform (AMD Phenom II X4 910e, Fedora 17 x86-64), this sped up
+       'cmp -n 8GiB /dev/full /dev/zero' by a factor of 3.8, and
+       'cmp -sn 8GiB /dev/full /dev/zero' by a factor of 1.8.
+       * bootstrap.conf (gnulib_modules): Add rawmemchr.
+       * src/cmp.c (cmp): Optimize the common case where buffers are the same,
+       by using count_newlines rather than block_compare_and_count.
+       (block_compare_and_count): Remove.
+       (count_newlines): New function.
+       * src/cmp.c (count_newlines):
+       * src/io.c (prepare_text):
+       * src/sdiff.c (lf_copy, lf_skip, lf_snarf):
+       Use rawmemchr instead of memchr, for speed.
+
+2013-08-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       cmp: tune 'cmp a b' for GCC x86
+       Performance problem reported by David Balažic in:
+       http://lists.gnu.org/archive/html/bug-diffutils/2013-08/msg00013.html
+       * src/system.h (word): Make it size_t, not uintmax_t.
+       This sped up plain cmp 90% on my tests (GCC 4.8.1, x86).
+
+2013-07-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2013-05-06  Stefano Lattarini  <stefano.lattarini@gmail.com>
+
+       build: enable 'subdir-objects' automake option
+       The future major Automake version (2.0, ETA at least one year from now)
+       might enable that option unconditionally, so better get prepared in due
+       time.
+
+       * configure.ac (AM_INIT_AUTOMAKE): Adjust.
+       (AM_PROG_CC_C_O): New, required by Automake up to 1.13.x when the
+       'subdir-objects' is in use.
+
+2013-04-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: update gnulib submodule to latest
+
+2013-04-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       diff: fix bug with Asian file names
+       Problem reported by Errembault Philippe in:
+       http://lists.gnu.org/archive/html/bug-diffutils/2013-03/msg00012.html
+       * NEWS: Document this.
+       * src/dir.c (compare_names): Fall back on file_name_cmp if
+       compare_collated returns 0, unless ignoring file name case.
+       (diff_dirs): Don't bother with the O(N**2) stuff unless ignoring
+       file name case.
+       * tests/Makefile.am (TESTS): Add strcoll-0-names.
+       * tests/strcoll-0-names: New file.
+
+       diff: remove unnecessary decl
+       * src/dir.c (compare_names_for_qsort): Remove declaration.
+       Not needed now that we assume C89.
+
+       diff: tune compare_names_for_qsort
+       * src/dir.c (compare_collated): New function.
+       (compare_names): Use it.
+       (compare_names_for_qsort): Use it.  This is a bit more efficient
+       as it can avoid a double invocation of file_name_cmp when
+       file_name_cmp returns zero.
+
+2013-03-30  Jim Meyering  <meyering@fb.com>
+
+       doc: mention new option, --no-dereference in 3.3's NEWS
+       * NEWS (New feeatures): Update 3.3's news to mention --no-dereference.
+       Reported by Denis Excoffier.
+       * Makefile.am (old_NEWS_hash): Update, since this modifies old, and
+       normally-immutable NEWS.
+
+2013-03-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tests: port to Solaris 10 /bin/sh
+       * tests/Makefile.am (TESTS_ENVIRONMENT):
+       Use "FOO=val; export FOO" rather than "export FOO=val",
+       as the latter form doesn't work with Solaris /bin/sh.
+       Problem found when trying to run "make check" on Solaris 10.
+
 2013-03-24  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.3
        * NEWS: Record release date.
 
index 5238b63..7cf442c 100644 (file)
@@ -4265,8 +4265,8 @@ 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 Free Software
-       Foundation, Inc.
+       Copyright (C) 1988-1994, 1997-2002, 2004, 2006, 2009-2013, 2015-2016
+       Free Software Foundation, Inc.
 
        Copying and distribution of this file, with or without
        modification, are permitted provided the copyright notice and this
index 8759034..a869da5 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-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2006-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/INSTALL b/INSTALL
index 007e939..8865734 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
-Inc.
+   Copyright (C) 1994-1996, 1999-2002, 2004-2016 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,97 +12,96 @@ without warranty of any kind.
 Basic Installation
 ==================
 
-   Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
-more-detailed instructions are generic; see the `README' file for
+   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
 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 results of its tests to speed up reconfiguring.  Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
+   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
+     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
      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
+  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.
+     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
-by setting variables in the command line or in the environment.  Here
-is an example:
+   You can give 'configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here is
+an example:
 
      ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
@@ -113,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
+"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" \
@@ -136,105 +135,104 @@ 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
-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
+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
 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
+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 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 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
+'${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
+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
 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
+   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.
+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
+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
+overridden with 'make V=1'; while running './configure
 --disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
+overridden with 'make V=0'.
 
 Particular systems
 ==================
 
-   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
-CC is not installed, it is recommended to use the following options in
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU CC
+is not installed, it is recommended to use the following options in
 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.
 
-   HP-UX `make' updates targets which have the same time stamps as
-their prerequisites, which makes it generally unusable when shipped
-generated files such as `configure' are involved.  Use GNU `make'
-instead.
+   HP-UX 'make' updates targets which have the same time stamps as their
+prerequisites, which makes it generally unusable when shipped generated
+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 workaround.  If GNU CC is not installed, it is therefore recommended
-to try
+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"
 
@@ -242,26 +240,26 @@ and if that doesn't 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
 
@@ -270,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'.
+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 Autoconf limitation.  Until the limitation is lifted, you can use
-this workaround:
+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'
+'--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 present in any nested 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'
+'--srcdir=DIR'
      Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
+     'configure' can determine that directory automatically.
 
-`--prefix=DIR'
-     Use DIR as the installation prefix.  *note Installation Names::
-     for more details, including other options available for fine-tuning
-     the installation locations.
+'--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 cf0ce1d..244024e 100644 (file)
@@ -1,6 +1,7 @@
 # Main Automakefile for GNU diffutils.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free Software
+# Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -33,9 +34,9 @@ gen_start_date = '2009-11-11 15:00'
 gen-ChangeLog:
        $(AM_V_GEN)if test -d .git; then                                \
          $(top_srcdir)/build-aux/gitlog-to-changelog                   \
-           --since=$(gen_start_date) > $(distdir)/cl-t;                \
-         rm -f $(distdir)/ChangeLog;                                   \
-         mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
+           --since=$(gen_start_date) > $(distdir)/cl-t &&              \
+           { rm -f $(distdir)/ChangeLog &&                             \
+             mv $(distdir)/cl-t $(distdir)/ChangeLog; }                \
        fi
 
 ALL_RECURSIVE_TARGETS += distcheck-hook
index 96eb52e..4dbb050 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 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,8 @@
 
 # Main Automakefile for GNU diffutils.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free Software
+# Foundation, Inc.
 
 # This 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/>.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -66,25 +105,14 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = .
-DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
-       $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(top_srcdir)/configure $(am__configure_deps) ABOUT-NLS \
-       COPYING THANKS TODO build-aux/compile build-aux/config.guess \
-       build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
-       build-aux/install-sh build-aux/mdate-sh build-aux/missing \
-       build-aux/texinfo.tex $(top_srcdir)/build-aux/compile \
-       $(top_srcdir)/build-aux/config.guess \
-       $(top_srcdir)/build-aux/config.rpath \
-       $(top_srcdir)/build-aux/config.sub \
-       $(top_srcdir)/build-aux/install-sh \
-       $(top_srcdir)/build-aux/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -92,9 +120,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -103,14 +132,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -126,36 +156,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -168,6 +207,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+       $(am__configure_deps) $(am__DIST_COMMON)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
@@ -230,6 +271,18 @@ ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/build-aux/ar-lib \
+       $(top_srcdir)/build-aux/compile \
+       $(top_srcdir)/build-aux/config.guess \
+       $(top_srcdir)/build-aux/config.rpath \
+       $(top_srcdir)/build-aux/config.sub \
+       $(top_srcdir)/build-aux/install-sh \
+       $(top_srcdir)/build-aux/missing ABOUT-NLS AUTHORS COPYING \
+       ChangeLog INSTALL NEWS README THANKS TODO build-aux/ar-lib \
+       build-aux/compile build-aux/config.guess \
+       build-aux/config.rpath build-aux/config.sub build-aux/depcomp \
+       build-aux/install-sh build-aux/mdate-sh build-aux/missing \
+       build-aux/texinfo.tex
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -318,13 +371,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -378,6 +435,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -387,13 +447,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -449,6 +514,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -457,6 +523,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -466,6 +533,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -473,14 +542,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -512,6 +587,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -574,6 +650,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -593,6 +671,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -646,6 +726,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -660,6 +741,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -680,6 +762,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -690,6 +773,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -704,6 +788,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -730,17 +815,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -788,6 +880,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -796,6 +889,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -815,11 +909,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -836,6 +933,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -844,6 +945,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -852,14 +954,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -868,6 +975,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -876,9 +984,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -931,14 +1043,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -947,6 +1064,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -975,21 +1093,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1012,9 +1134,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1038,21 +1162,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1071,6 +1200,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1108,11 +1238,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1145,15 +1277,14 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            echo ' $(SHELL) ./config.status'; \
            $(SHELL) ./config.status;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -1172,13 +1303,12 @@ $(am__aclocal_m4_deps):
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -1340,7 +1470,7 @@ distdir: $(DISTFILES)
          ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+       tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
        $(am__post_remove_distdir)
 
 dist-bzip2: distdir
@@ -1354,14 +1484,6 @@ dist-xz: distdir
        tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
        $(am__post_remove_distdir)
 
-dist-tarZ: distdir
-       tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-       $(am__post_remove_distdir)
-
-dist-shar: distdir
-       shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__post_remove_distdir)
-
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
@@ -1377,7 +1499,7 @@ dist dist-all:
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
          bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
        *.tar.lz*) \
@@ -1387,23 +1509,24 @@ distcheck: dist
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+         eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
        chmod -R a-w $(distdir)
        chmod u+w $(distdir)
-       mkdir $(distdir)/_build $(distdir)/_inst
+       mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
          && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
          && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
          && am__cwd=`pwd` \
-         && $(am__cd) $(distdir)/_build \
-         && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+         && $(am__cd) $(distdir)/_build/sub \
+         && ../../configure \
            $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
+           --srcdir=../.. --prefix="$$dc_install_base" \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
          && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1565,18 +1688,20 @@ uninstall-am:
 .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
        am--refresh check check-am clean clean-cscope clean-generic \
        cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
-       dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
-       dist-zip distcheck distclean distclean-generic distclean-tags \
-       distcleancheck distdir distuninstallcheck dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-html install-html-am install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs installdirs-am maintainer-clean \
+       dist-gzip dist-hook dist-lzip dist-xz dist-zip distcheck \
+       distclean distclean-generic distclean-tags distcleancheck \
+       distdir distuninstallcheck dvi dvi-am html html-am info \
+       info-am install install-am install-data install-data-am \
+       install-dvi install-dvi-am install-exec install-exec-am \
+       install-html install-html-am install-info install-info-am \
+       install-man install-pdf install-pdf-am install-ps \
+       install-ps-am install-strip installcheck installcheck-am \
+       installdirs installdirs-am maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
        pdf-am ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Arrange so that .tarball-version appears only in the distribution
 # tarball, and never in a checked-out repository.
@@ -1586,9 +1711,9 @@ dist-hook: gen-ChangeLog
 gen-ChangeLog:
        $(AM_V_GEN)if test -d .git; then                                \
          $(top_srcdir)/build-aux/gitlog-to-changelog                   \
-           --since=$(gen_start_date) > $(distdir)/cl-t;                \
-         rm -f $(distdir)/ChangeLog;                                   \
-         mv $(distdir)/cl-t $(distdir)/ChangeLog;                      \
+           --since=$(gen_start_date) > $(distdir)/cl-t &&              \
+           { rm -f $(distdir)/ChangeLog &&                             \
+             mv $(distdir)/cl-t $(distdir)/ChangeLog; }                \
        fi
 distcheck-hook:
        $(MAKE) my-distcheck
diff --git a/NEWS b/NEWS
index 12ad4f7..536dba5 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,9 +1,52 @@
 GNU diffutils NEWS                                    -*- outline -*-
 
+* Noteworthy changes in release 3.4 (2016-08-08) [stable]
+
+** New features
+
+   diff accepts two new options --color and --palette to generate
+   and configure colored output.  --color takes an optional argument
+   specifying when to colorize a line: --color=always, --color=auto,
+   --color=never.  --palette is used to configure which colors are used.
+
+** Bug fixes
+
+  When binary files differ, diff now exits with status 1 as POSIX requires.
+  Formerly it exited with status 2.
+
+  Unless the --ignore-file-name-case option is used, diff now
+  considers file names to be equal only if they are byte-for-byte
+  equivalent.  This fixes a bug where diff in an English locale might
+  consider two Asian file names to be the same merely because they
+  contain no English characters.
+
+  diff -B no longer generates incorrect output if the two inputs
+  each end with a one-byte incomplete line.
+
+  diff --brief no longer reports a difference for unusual identical files.
+  For example, when comparing a file like /proc/cmdline (for which the linux
+  kernel reports st_size of 0 even though it is not an empty file) to a
+  copy of that file's contents residing on a "normal" file system:
+    $ f=/proc/cmdline; cp $f k; diff --brief $f k
+    Files /proc/cmdline and k differ
+
+** Performance changes
+
+  diff's default algorithm has been adjusted to output higher-quality
+  results at somewhat greater computational cost, as CPUs have gotten
+  faster since the algorithm was last tweaked in diffutils-2.6 (1993).
+
+
 * Noteworthy changes in release 3.3 (2013-03-24) [stable]
 
 ** New features
 
+  diff accepts a new option, --no-dereference.  With this option, symbolic
+  links are treated specially: as a separate type of file that can compare
+  equal only to another symbolic link with the same value.  For example,
+  with --no-dereference, two symbolic links compare equal when they have
+  the same value, even when that value does not reference a readable file.
+
   --new-file (-N) and --unidirectional-new-file now allow comparisons to "-".
   A standard input that's closed acts like a nonexistent file.
 
@@ -324,8 +367,8 @@ User-visible changes in version 2.0:
 
 \f
 
-Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013 Free Software
-Foundation, Inc.
+Copyright (C) 1993-1994, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free
+Software Foundation, Inc.
 
 This file is part of GNU Diffutils.
 
diff --git a/README b/README
index 753e66e..30bb380 100644 (file)
--- a/README
+++ b/README
@@ -47,12 +47,12 @@ this distribution:
 For any copyright year range specified as YYYY-ZZZZ in this package
 note that the range specifies every single year in that closed interval.
 
-Please report bugs to <bug-gnu-utils@gnu.org>.
+Please report bugs to <bug-diffutils@gnu.org>.
 
 -----
 
-Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013 Free Software Foundation,
-Inc.
+Copyright (C) 1992, 1998, 2001-2002, 2004, 2009-2013, 2015-2016 Free Software
+Foundation, Inc.
 
 This file is part of GNU Diffutils.
 
index 143b33e..a880f93 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.13a -*- Autoconf -*-
+# generated automatically by aclocal 1.99a -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 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.69.79-0bdae],,
-[m4_warning([this file was generated for autoconf 2.69.79-0bdae.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69.147-5ad35],,
+[m4_warning([this file was generated for autoconf 2.69.147-5ad35.
 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-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.13a'
+[am__api_version='1.99a'
 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.13a], [],
+m4_if([$1], [1.99a], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,74 @@ 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.13a])dnl
+[AM_AUTOMAKE_VERSION([1.99a])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
+# Copyright (C) 2011-2015 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_AR([ACT-IF-FAIL])
+# -------------------------
+# Try to determine the archiver interface, and trigger the ar-lib wrapper
+# if it is needed.  If the detection of archiver interface fails, run
+# ACT-IF-FAIL (default is to abort configure with a proper error message).
+AC_DEFUN([AM_PROG_AR],
+[AC_BEFORE([$0], [LT_INIT])dnl
+AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([ar-lib])dnl
+AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
+: ${AR=ar}
+
+AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
+  [AC_LANG_PUSH([C])
+   am_cv_ar_interface=ar
+   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
+     [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([am_ar_try])
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
+        AC_TRY_EVAL([am_ar_try])
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
+      fi
+      rm -f conftest.lib libconftest.a
+     ])
+   AC_LANG_POP([C])])
+
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  m4_default([$1],
+             [AC_MSG_ERROR([could not determine $AR interface])])
+  ;;
+esac
+AC_SUBST([AR])dnl
+])
+
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -103,15 +163,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 # configured tree to be moved without reconfiguration.
 
 AC_DEFUN([AM_AUX_DIR_EXPAND],
-[dnl Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])dnl
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 ])
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -142,7 +201,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -330,13 +389,12 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2015 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_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
@@ -344,49 +402,41 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
   # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  AS_CASE([$CONFIG_FILES],
+          [*\'*], [eval set x "$CONFIG_FILES"],
+          [*], [set x $CONFIG_FILES])
   shift
-  for mf
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
   do
     # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
+    am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
     # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`AS_DIRNAME(["$am_mf"])`
+    am_filepart=`AS_BASENAME(["$am_mf"])`
+    AM_RUN_LOG([cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles]) || am_rc=$?
   done
+  if test $am_rc -ne 0; then
+    AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  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).])
+  fi
+  AS_UNSET([am_dirpart])
+  AS_UNSET([am_filepart])
+  AS_UNSET([am_mf])
+  AS_UNSET([am_rc])
+  rm -f conftest-deps.mk
 }
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
@@ -395,18 +445,17 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 # -----------------------------
 # This macro should only be invoked once -- use via AC_REQUIRE.
 #
-# This code is only required when automatic dependency tracking
-# is enabled.  FIXME.  This creates each '.P' file that we will
-# need in order to bootstrap the dependency handling code.
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
 AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 [AC_CONFIG_COMMANDS([depfiles],
      [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
-])
+     [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -415,6 +464,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
 # -----------------------------------------------
@@ -428,6 +483,8 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
 [AC_PREREQ([2.65])dnl
+dnl Without this, packages using Gettext 0.18.2 might break horribly.
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])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
@@ -485,8 +542,8 @@ AM_MISSING_PROG([MAKEINFO], [makeinfo])
 AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
 AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AC_PROG_MKDIR_P])dnl
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
@@ -558,7 +615,11 @@ to "yes", and re-run configure.
 END
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
-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.
+])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
 dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
@@ -566,52 +627,6 @@ dnl mangled by Autoconf and run in a shell conditional statement.
 m4_define([_AC_COMPILER_EXEEXT],
 m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
 
-dnl We have to redefine AC_PROG_CC to allow our compile rules to use
-dnl "-c -o" together also with losing compilers.
-dnl FIXME: Add references to the original discussion and bug report.
-dnl FIXME: Shameless copy & paste from Autoconf internals, since trying to
-dnl        play smart among tangles of AC_REQUIRE, m4_defn, m4_provide and
-dnl        other tricks was proving too difficult, and in the end, likely
-dnl        more brittle too.  And this should anyway be just a temporary
-dnl        band-aid, until Autoconf provides the semantics and/or hooks we
-dnl        need (hint hint, nudge nudge) ...
-AC_DEFUN([AC_PROG_CC],
-m4_defn([AC_PROG_CC])
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-AC_REQUIRE_AUX_FILE([compile])dnl
-dnl FIXME The following abomination is expected to disappear in
-dnl       Automake 1.14.
-AC_MSG_CHECKING([whether $CC understands -c and -o together])
-set dummy $CC; am__cc=`AS_ECHO(["$[2]"]) | \
-                       sed 's/[[^a-zA-Z0-9_]]/_/g;s/^[[0-9]]/_/'`
-AC_CACHE_VAL([am_cv_prog_cc_${am__cc}_c_o],
-[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&AS_MESSAGE_LOG_FD'
-rm -f conftest2.*
-if _AC_DO_VAR(ac_try) && test -f conftest2.$ac_objext
-then
-  eval am_cv_prog_cc_${am__cc}_c_o=yes
-else
-  eval am_cv_prog_cc_${am__cc}_c_o=no
-fi
-rm -f core conftest*
-])dnl
-if eval test \"\$am_cv_prog_cc_${am__cc}_c_o\" = yes; then
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no])
-  # Losing compiler, so wrap it with the 'compile' script.
-  # FIXME: It is wrong to rewrite CC.
-  # But if we don't then we get into trouble of one sort or another.
-  # A longer-term fix would be to have automake use am__CC in this case,
-  # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-  CC="$am_aux_dir/compile $CC"
-fi
-])
-
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
 # that is generated.  The stamp files are numbered to have different names.
@@ -633,7 +648,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-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -644,7 +659,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\    *)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -656,7 +671,7 @@ AC_SUBST([install_sh])])
 
 # Check to see how 'make' treats includes.                 -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -664,74 +679,42 @@ AC_SUBST([install_sh])])
 
 # AM_MAKE_INCLUDE()
 # -----------------
-# Check to see how make treats includes.
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
 AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
 am__doit:
-       @echo this is the am__doit target
+       @echo this is the am__doit target >confinc.out
 .PHONY: am__doit
 END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
 am__include="#"
 am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# AM_PROG_CC_C_O
-# --------------
-# Basically a no-op now, completely superseded by the AC_PROG_CC
-# adjusted by Automake.  Kept for backward-compatibility.
-AC_DEFUN([AM_PROG_CC_C_O],
-[AC_REQUIRE([AC_PROG_CC])dnl
-dnl Make sure AC_PROG_CC is never called again, or it will override our
-dnl setting of CC.
-m4_define([AC_PROG_CC],
-          [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
-# For better backward-compatibility.  Users are advised to stop
-# relying on this cache variable and C preprocessor symbol ASAP.
-eval ac_cv_prog_cc_${am__cc}_c_o=\$am_cv_prog_cc_${am__cc}_c_o
-if eval test \"\$ac_cv_prog_cc_${am__cc}_c_o\" != yes; then
-  AC_DEFINE([NO_MINUS_C_MINUS_O], [1],
-            [Define to 1 if your C compiler doesn't accept -c and -o together.])
-fi
-])
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+  AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+      ['0:this is the am__doit target'],
+      [AS_CASE([$s],
+          [BSD], [am__include='.include' am__quote='"'],
+          [am__include='include' am__quote=''])])
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -770,7 +753,7 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -799,9 +782,73 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
+# Copyright (C) 1999-2015 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_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2015 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_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -882,7 +929,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -942,7 +989,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -970,7 +1017,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -989,7 +1036,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2015 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1008,82 +1055,122 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
 m4_include([m4/00gnulib.m4])
+m4_include([m4/absolute-header.m4])
 m4_include([m4/alloca.m4])
+m4_include([m4/arpa_inet_h.m4])
 m4_include([m4/btowc.m4])
 m4_include([m4/c-stack.m4])
 m4_include([m4/clock_time.m4])
@@ -1091,6 +1178,7 @@ m4_include([m4/close.m4])
 m4_include([m4/codeset.m4])
 m4_include([m4/config-h.m4])
 m4_include([m4/configmake.m4])
+m4_include([m4/ctype.m4])
 m4_include([m4/dirname.m4])
 m4_include([m4/double-slash-root.m4])
 m4_include([m4/dup2.m4])
@@ -1106,11 +1194,13 @@ m4_include([m4/fcntl.m4])
 m4_include([m4/fcntl_h.m4])
 m4_include([m4/fdopen.m4])
 m4_include([m4/filenamecat.m4])
+m4_include([m4/flexmember.m4])
 m4_include([m4/float_h.m4])
 m4_include([m4/fnmatch.m4])
 m4_include([m4/fpieee.m4])
 m4_include([m4/freopen.m4])
 m4_include([m4/fstat.m4])
+m4_include([m4/ftruncate.m4])
 m4_include([m4/getcwd.m4])
 m4_include([m4/getdtablesize.m4])
 m4_include([m4/getopt.m4])
@@ -1127,6 +1217,7 @@ m4_include([m4/iconv.m4])
 m4_include([m4/iconv_h.m4])
 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/intlmacosx.m4])
 m4_include([m4/intmax_t.m4])
@@ -1134,6 +1225,8 @@ m4_include([m4/inttostr.m4])
 m4_include([m4/inttypes-pri.m4])
 m4_include([m4/inttypes.m4])
 m4_include([m4/inttypes_h.m4])
+m4_include([m4/ioctl.m4])
+m4_include([m4/isblank.m4])
 m4_include([m4/iswblank.m4])
 m4_include([m4/langinfo_h.m4])
 m4_include([m4/largefile.m4])
@@ -1170,12 +1263,16 @@ m4_include([m4/mode_t.m4])
 m4_include([m4/msvc-inval.m4])
 m4_include([m4/msvc-nothrow.m4])
 m4_include([m4/multiarch.m4])
+m4_include([m4/nanosleep.m4])
+m4_include([m4/netinet_in_h.m4])
 m4_include([m4/nl_langinfo.m4])
 m4_include([m4/nls.m4])
 m4_include([m4/nocrash.m4])
 m4_include([m4/off_t.m4])
 m4_include([m4/open.m4])
 m4_include([m4/pathmax.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])
@@ -1183,9 +1280,11 @@ m4_include([m4/putenv.m4])
 m4_include([m4/quote.m4])
 m4_include([m4/quotearg.m4])
 m4_include([m4/raise.m4])
+m4_include([m4/rawmemchr.m4])
 m4_include([m4/readlink.m4])
 m4_include([m4/regex.m4])
 m4_include([m4/secure_getenv.m4])
+m4_include([m4/select.m4])
 m4_include([m4/setenv.m4])
 m4_include([m4/setlocale.m4])
 m4_include([m4/sigaction.m4])
@@ -1194,9 +1293,14 @@ m4_include([m4/signalblocking.m4])
 m4_include([m4/size_max.m4])
 m4_include([m4/sleep.m4])
 m4_include([m4/snprintf.m4])
+m4_include([m4/socketlib.m4])
+m4_include([m4/sockets.m4])
+m4_include([m4/socklen.m4])
+m4_include([m4/sockpfaf.m4])
 m4_include([m4/ssize_t.m4])
 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])
@@ -1206,6 +1310,7 @@ m4_include([m4/stdio_h.m4])
 m4_include([m4/stdlib_h.m4])
 m4_include([m4/strcase.m4])
 m4_include([m4/strerror.m4])
+m4_include([m4/strerror_r.m4])
 m4_include([m4/strftime.m4])
 m4_include([m4/string_h.m4])
 m4_include([m4/strings_h.m4])
@@ -1215,19 +1320,23 @@ m4_include([m4/strptime.m4])
 m4_include([m4/strtoull.m4])
 m4_include([m4/strtoumax.m4])
 m4_include([m4/symlink.m4])
+m4_include([m4/sys_ioctl_h.m4])
+m4_include([m4/sys_select_h.m4])
 m4_include([m4/sys_socket_h.m4])
 m4_include([m4/sys_stat_h.m4])
 m4_include([m4/sys_time_h.m4])
 m4_include([m4/sys_types_h.m4])
+m4_include([m4/sys_uio_h.m4])
 m4_include([m4/sys_wait_h.m4])
 m4_include([m4/tempname.m4])
 m4_include([m4/time_h.m4])
 m4_include([m4/time_r.m4])
+m4_include([m4/time_rz.m4])
+m4_include([m4/timegm.m4])
 m4_include([m4/timespec.m4])
 m4_include([m4/tm_gmtoff.m4])
 m4_include([m4/unistd_h.m4])
 m4_include([m4/unlocked-io.m4])
-m4_include([m4/usleep.m4])
 m4_include([m4/vararrays.m4])
 m4_include([m4/vasnprintf.m4])
 m4_include([m4/vasprintf.m4])
index bee7765..f060bab 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2013-01-20.16; # UTC
+scriptversion=2016-01-24.06; # UTC
 
 # Bootstrap this package from checked-out sources.
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -42,6 +42,9 @@ export LC_ALL
 
 local_gl_dir=gl
 
+# Honor $PERL, but work even if there is none.
+PERL="${PERL-perl}"
+
 me=$0
 
 usage() {
@@ -140,20 +143,21 @@ po_download_command_format2=\
 "wget --mirror -nd -q -np -A.po -P '%s' \
  http://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)
 extract_package_name='
-  /^AC_INIT(/{
-     /.*,.*,.*, */{
-       s///
-       s/[][]//g
-       s/)$//
+  /^AC_INIT(\[*/{
+     s///
+     /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
+       s//\1/
+       s/[],)].*//
        p
        q
      }
-     s/AC_INIT(\[*//
-     s/]*,.*//
+     s/[],)].*//
      s/^GNU //
      y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
-     s/[^A-Za-z0-9_]/-/g
+     s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
      p
   }
 '
@@ -208,12 +212,26 @@ bootstrap_sync=false
 # Use git to update gnulib sources
 use_git=true
 
+check_exists() {
+  if test "$1" = "--verbose"; then
+    ($2 --version </dev/null) >/dev/null 2>&1
+    if test $? -ge 126; then
+      # If not found, run with diagnostics as one may be
+      # presented with env variables to set to find the right version
+      ($2 --version </dev/null)
+    fi
+  else
+    ($1 --version </dev/null) >/dev/null 2>&1
+  fi
+
+  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 (i.e.,
-# supports --version).  If found, set ENVVAR to the program name,
-# die otherwise.
+# 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 ()
@@ -223,27 +241,21 @@ find_tool ()
   find_tool_names=$@
   eval "find_tool_res=\$$find_tool_envvar"
   if test x"$find_tool_res" = x; then
-    for i
-    do
-      if ($i --version </dev/null) >/dev/null 2>&1; then
-       find_tool_res=$i
-       break
+    for i; do
+      if check_exists $i; then
+        find_tool_res=$i
+        break
       fi
     done
-  else
-    find_tool_error_prefix="\$$find_tool_envvar: "
   fi
-  test x"$find_tool_res" != x \
-    || die "one of these is required: $find_tool_names"
-  ($find_tool_res --version </dev/null) >/dev/null 2>&1 \
-    || die "${find_tool_error_prefix}cannot run $find_tool_res --version"
+  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"
 }
 
-# Find sha1sum, named gsha1sum on MacPorts, and shasum on Mac OS X 10.6.
-find_tool SHA1SUM sha1sum gsha1sum shasum
-
 # Override the default configuration, if necessary.
 # Make sure that bootstrap.conf is sourced from the current directory
 # if we were invoked as "sh bootstrap".
@@ -255,12 +267,12 @@ esac
 # Extra files from gnulib, which override files from other sources.
 test -z "${gnulib_extra_files}" && \
   gnulib_extra_files="
-        $build_aux/install-sh
-        $build_aux/mdate-sh
-        $build_aux/texinfo.tex
-        $build_aux/depcomp
-        $build_aux/config.guess
-        $build_aux/config.sub
+        build-aux/install-sh
+        build-aux/mdate-sh
+        build-aux/texinfo.tex
+        build-aux/depcomp
+        build-aux/config.guess
+        build-aux/config.sub
         doc/INSTALL
 "
 
@@ -325,7 +337,7 @@ insert_if_absent() {
     die "Error: Duplicate entries in $file: " $duplicate_entries
   fi
   linesold=$(gitignore_entries $file | wc -l)
-  linesnew=$(echo "$str" | gitignore_entries - $file | sort -u | 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"
@@ -409,7 +421,7 @@ sort_ver() { # sort -V is not generally available
 get_version() {
   app=$1
 
-  $app --version >/dev/null 2>&1 || return 1
+  $app --version >/dev/null 2>&1 || { $app --version; return 1; }
 
   $app --version 2>&1 |
   sed -n '# Move version to start of line.
@@ -447,6 +459,7 @@ check_versions() {
     test "$appvar" = TAR && appvar=AMTAR
     case $appvar in
         GZIP) ;; # Do not use $GZIP:  it contains gzip options.
+        PERL::*) ;; # Keep perl modules as-is
         *) eval "app=\${$appvar-$app}" ;;
     esac
 
@@ -464,12 +477,22 @@ check_versions() {
           ret=1
           continue
         } ;;
+      # Another check is for perl modules.  These can be written as
+      # e.g. perl::XML::XPath in case of XML::XPath module, etc.
+      perl::*)
+        # Extract module name
+        app="${app#perl::}"
+        if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
+          warn_ "Error: perl module '$app' not found"
+          ret=1
+        fi
+        continue
+        ;;
     esac
     if [ "$req_ver" = "-" ]; then
       # Merely require app to exist; not all prereq apps are well-behaved
       # so we have to rely on $? rather than get_version.
-      $app --version >/dev/null 2>&1
-      if [ 126 -le $? ]; then
+      if ! check_exists --verbose $app; then
         warn_ "Error: '$app' not found"
         ret=1
       fi
@@ -502,6 +525,12 @@ 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,
@@ -547,13 +576,21 @@ if ! printf "$buildreq" | check_versions; then
   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
+
 echo "$0: Bootstrapping from checked-out $package sources..."
 
 # See if we can use gnulib's git-merge-changelog merge driver.
-if test -d .git && (git --version) >/dev/null 2>/dev/null ; then
+if $use_git && test -d .git && check_exists git; then
   if git config merge.merge-changelog.driver >/dev/null ; then
     :
-  elif (git-merge-changelog --version) >/dev/null 2>/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'
@@ -573,17 +610,21 @@ git_modules_config () {
   test -f .gitmodules && git config --file .gitmodules "$@"
 }
 
-gnulib_path=$(git_modules_config submodule.gnulib.path)
-test -z "$gnulib_path" && gnulib_path=gnulib
+if $use_git; then
+  gnulib_path=$(git_modules_config submodule.gnulib.path)
+  test -z "$gnulib_path" && gnulib_path=gnulib
+fi
 
-# Get gnulib files.
+# 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 || exit $?
-    git submodule update || exit $?
+    git submodule init -- "$gnulib_path" || exit $?
+    git submodule update -- "$gnulib_path" || exit $?
 
   elif [ ! -d "$gnulib_path" ]; then
     echo "$0: getting gnulib files..."
@@ -600,8 +641,8 @@ case ${GNULIB_SRCDIR--} in
   GNULIB_SRCDIR=$gnulib_path
   ;;
 *)
-  # Use GNULIB_SRCDIR as a reference.
-  if test -d "$GNULIB_SRCDIR"/.git && \
+  # 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
     echo "$0: getting gnulib files..."
     if git submodule -h|grep -- --reference > /dev/null; then
@@ -612,13 +653,14 @@ case ${GNULIB_SRCDIR--} in
       # This fallback allows at least git 1.5.5.
       if test -f "$gnulib_path"/gnulib-tool; then
         # Since file already exists, assume submodule init already complete.
-        git submodule update || exit $?
+        git submodule update -- "$gnulib_path" || exit $?
       else
         # Older git can't clone into an empty directory.
         rmdir "$gnulib_path" 2>/dev/null
         git clone --reference "$GNULIB_SRCDIR" \
           "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
-          && git submodule init && git submodule update \
+          && git submodule init -- "$gnulib_path" \
+          && git submodule update -- "$gnulib_path" \
           || exit $?
       fi
     fi
@@ -627,12 +669,19 @@ case ${GNULIB_SRCDIR--} in
   ;;
 esac
 
+# $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}" "$@"' \
-      -- "$GNULIB_SRCDIR/build-aux/bootstrap" \
+      $ignored "$GNULIB_SRCDIR/build-aux/bootstrap" \
       "$0" "$@" --no-bootstrap-sync
   }
 fi
@@ -680,11 +729,10 @@ update_po_files() {
     cksum_file="$ref_po_dir/$po.s1"
     if ! test -f "$cksum_file" ||
         ! test -f "$po_dir/$po.po" ||
-        ! $SHA1SUM -c --status "$cksum_file" \
-            < "$new_po" > /dev/null; then
+        ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then
       echo "$me: updated $po_dir/$po.po..."
       cp "$new_po" "$po_dir/$po.po" \
-          && $SHA1SUM < "$new_po" > "$cksum_file"
+          && $SHA1SUM < "$new_po" > "$cksum_file" || return
     fi
   done
 }
@@ -867,7 +915,8 @@ if test $use_libtool = 1; then
   esac
 fi
 echo "$0: $gnulib_tool $gnulib_tool_options --import ..."
-$gnulib_tool $gnulib_tool_options --import $gnulib_modules &&
+$gnulib_tool $gnulib_tool_options --import $gnulib_modules \
+  || die "gnulib-tool failed"
 
 for file in $gnulib_files; do
   symlink_to_dir "$GNULIB_SRCDIR" $file \
@@ -972,6 +1021,6 @@ echo "$0: done.  Now you can run './configure'."
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 3a64ec6..b461174 100755 (executable)
@@ -1,15 +1,15 @@
-eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+eval '(exit $?0)' && eval 'exec perl -wS "$0" "$@"'
   & eval 'exec perl -wS "$0" $argv:q'
     if 0;
 # Generate a release announcement message.
 
-my $VERSION = '2012-06-08 06:53'; # UTC
+my $VERSION = '2016-01-12 23:09'; # 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.
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -29,15 +29,18 @@ my $VERSION = '2012-06-08 06:53'; # UTC
 use strict;
 
 use Getopt::Long;
-use Digest::MD5;
-eval { require Digest::SHA; }
-  or eval 'use Digest::SHA1';
 use POSIX qw(strftime);
 
 (my $ME = $0) =~ s|.*/||;
 
 my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
 my @archive_suffixes = ('tar.gz', 'tar.bz2', '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 ($)
@@ -157,15 +160,13 @@ sub print_checksums (@)
 
   foreach my $meth (qw (md5 sha1))
     {
+      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 =
-            ($meth eq 'md5'
-             ? Digest::MD5->new->addfile(*IN)->hexdigest
-             : Digest::SHA1->new->addfile(*IN)->hexdigest);
+          my $dig = $class->new->addfile(*IN)->hexdigest;
           close IN;
           print "$dig  $f\n";
         }
@@ -416,14 +417,15 @@ sub get_tool_versions ($$)
   @url_dir_list
     or (warn "URL directory name(s) not specified\n"), $fail = 1;
 
-  my @tool_list = split ',', $bootstrap_tools;
+  my @tool_list = split ',', $bootstrap_tools
+    if $bootstrap_tools;
 
   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;
 
-  exists $valid_release_types{$release_type}
+  !$release_type || exists $valid_release_types{$release_type}
     or (warn "'$release_type': invalid release type\n"), $fail = 1;
 
   @ARGV
@@ -550,6 +552,6 @@ EOF
 ## eval: (add-hook 'write-file-hooks 'time-stamp)
 ## time-stamp-start: "my $VERSION = '"
 ## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
-## time-stamp-time-zone: "UTC"
+## time-stamp-time-zone: "UTC0"
 ## time-stamp-end: "'; # UTC"
 ## End:
diff --git a/build-aux/ar-lib b/build-aux/ar-lib
new file mode 100755 (executable)
index 0000000..1700c5e
--- /dev/null
@@ -0,0 +1,270 @@
+#! /bin/sh
+# Wrapper for Microsoft lib.exe
+
+me=ar-lib
+scriptversion=2012-03-01.08; # UTC
+
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
+# Written by Peter Rosin <peda@lysator.liu.se>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+
+# func_error message
+func_error ()
+{
+  echo "$me: $1" 1>&2
+  exit 1
+}
+
+file_conv=
+
+# func_file_conv build_file
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+       # lazily determine how to convert abs files
+       case `uname -s` in
+         MINGW*)
+           file_conv=mingw
+           ;;
+         CYGWIN*)
+           file_conv=cygwin
+           ;;
+         *)
+           file_conv=wine
+           ;;
+       esac
+      fi
+      case $file_conv in
+       mingw)
+         file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+         ;;
+       cygwin)
+         file=`cygpath -m "$file" || echo "$file"`
+         ;;
+       wine)
+         file=`winepath -w "$file" || echo "$file"`
+         ;;
+      esac
+      ;;
+  esac
+}
+
+# func_at_file at_file operation archive
+# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
+# for each of them.
+# When interpreting the content of the @FILE, do NOT use func_file_conv,
+# since the user would need to supply preconverted file names to
+# binutils ar, at least for MinGW.
+func_at_file ()
+{
+  operation=$2
+  archive=$3
+  at_file_contents=`cat "$1"`
+  eval set x "$at_file_contents"
+  shift
+
+  for member
+  do
+    $AR -NOLOGO $operation:"$member" "$archive" || exit $?
+  done
+}
+
+case $1 in
+  '')
+     func_error "no command.  Try '$0 --help' for more information."
+     ;;
+  -h | --h*)
+    cat <<EOF
+Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
+
+Members may be specified in a file named with @FILE.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "$me, version $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test $# -lt 3; then
+  func_error "you must specify a program, an action and an archive"
+fi
+
+AR=$1
+shift
+while :
+do
+  if test $# -lt 2; then
+    func_error "you must specify a program, an action and an archive"
+  fi
+  case $1 in
+    -lib | -LIB \
+    | -ltcg | -LTCG \
+    | -machine* | -MACHINE* \
+    | -subsystem* | -SUBSYSTEM* \
+    | -verbose | -VERBOSE \
+    | -wx* | -WX* )
+      AR="$AR $1"
+      shift
+      ;;
+    *)
+      action=$1
+      shift
+      break
+      ;;
+  esac
+done
+orig_archive=$1
+shift
+func_file_conv "$orig_archive"
+archive=$file
+
+# strip leading dash in $action
+action=${action#-}
+
+delete=
+extract=
+list=
+quick=
+replace=
+index=
+create=
+
+while test -n "$action"
+do
+  case $action in
+    d*) delete=yes  ;;
+    x*) extract=yes ;;
+    t*) list=yes    ;;
+    q*) quick=yes   ;;
+    r*) replace=yes ;;
+    s*) index=yes   ;;
+    S*)             ;; # the index is always updated implicitly
+    c*) create=yes  ;;
+    u*)             ;; # TODO: don't ignore the update modifier
+    v*)             ;; # TODO: don't ignore the verbose modifier
+    *)
+      func_error "unknown action specified"
+      ;;
+  esac
+  action=${action#?}
+done
+
+case $delete$extract$list$quick$replace,$index in
+  yes,* | ,yes)
+    ;;
+  yesyes*)
+    func_error "more than one action specified"
+    ;;
+  *)
+    func_error "no action specified"
+    ;;
+esac
+
+if test -n "$delete"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  for member
+  do
+    case $1 in
+      @*)
+        func_at_file "${1#@}" -REMOVE "$archive"
+        ;;
+      *)
+        func_file_conv "$1"
+        $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
+        ;;
+    esac
+  done
+
+elif test -n "$extract"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  if test $# -gt 0; then
+    for member
+    do
+      case $1 in
+        @*)
+          func_at_file "${1#@}" -EXTRACT "$archive"
+          ;;
+        *)
+          func_file_conv "$1"
+          $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
+          ;;
+      esac
+    done
+  else
+    $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member
+    do
+      $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
+    done
+  fi
+
+elif test -n "$quick$replace"; then
+  if test ! -f "$orig_archive"; then
+    if test -z "$create"; then
+      echo "$me: creating $orig_archive"
+    fi
+    orig_archive=
+  else
+    orig_archive=$archive
+  fi
+
+  for member
+  do
+    case $1 in
+    @*)
+      func_file_conv "${1#@}"
+      set x "$@" "@$file"
+      ;;
+    *)
+      func_file_conv "$1"
+      set x "$@" "$file"
+      ;;
+    esac
+    shift
+    shift
+  done
+
+  if test -n "$orig_archive"; then
+    $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
+  else
+    $AR -NOLOGO -OUT:"$archive" "$@" || exit $?
+  fi
+
+elif test -n "$list"; then
+  if test ! -f "$orig_archive"; then
+    func_error "archive not found"
+  fi
+  $AR -NOLOGO -LIST "$archive" || exit $?
+fi
index 531136b..4bfd30c 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2015 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -255,7 +255,8 @@ EOF
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -342,6 +343,6 @@ exit $ret
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index f475ceb..c4bd827 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2013-02-12'
+timestamp='2016-05-15'
 
 # 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
@@ -24,12 +24,12 @@ timestamp='2013-02-12'
 # program.  This Exception is an additional permission under section 7
 # of the GNU General Public License, version 3 ("GPLv3").
 #
-# Originally written by Per Bothner.
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
 
 
 me=`echo "$0" | sed -e 's,.*/,,'`
@@ -50,7 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2016 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."
@@ -132,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       LIBC=gnu
+
+       eval $set_cc_for_build
+       cat <<-EOF > $dummy.c
+       #include <features.h>
+       #if defined(__UCLIBC__)
+       LIBC=uclibc
+       #elif defined(__dietlibc__)
+       LIBC=dietlibc
+       #else
+       LIBC=gnu
+       #endif
+       EOF
+       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       ;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -147,19 +168,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+           /sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || \
+           echo unknown)`
        case "${UNAME_MACHINE_ARCH}" in
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
+           earmv*)
+               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+               machine=${arch}${endian}-unknown
+               ;;
            *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
        esac
        # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
+       # to ELF recently (or will in the future) and ABI.
        case "${UNAME_MACHINE_ARCH}" in
+           earm*)
+               os=netbsdelf
+               ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
                eval $set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -176,6 +207,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                os=netbsd
                ;;
        esac
+       # Determine ABI tags.
+       case "${UNAME_MACHINE_ARCH}" in
+           earm*)
+               expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               ;;
+       esac
        # The OS release
        # Debian GNU/NetBSD machines have a different userland, and
        # thus, need a distinct triplet. However, they do not need
@@ -186,13 +224,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
+       echo "${machine}-${os}${release}${abi}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -202,6 +240,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
        exit ;;
+    *:LibertyBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+       exit ;;
     *:ekkoBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
        exit ;;
@@ -214,6 +256,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:MirBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
        exit ;;
+    *:Sortix:*:*)
+       echo ${UNAME_MACHINE}-unknown-sortix
+       exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -230,42 +275,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
        case "$ALPHA_CPU_TYPE" in
            "EV4 (21064)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "EV4.5 (21064)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "LCA4 (21066/21068)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "EV5 (21164)")
-               UNAME_MACHINE="alphaev5" ;;
+               UNAME_MACHINE=alphaev5 ;;
            "EV5.6 (21164A)")
-               UNAME_MACHINE="alphaev56" ;;
+               UNAME_MACHINE=alphaev56 ;;
            "EV5.6 (21164PC)")
-               UNAME_MACHINE="alphapca56" ;;
+               UNAME_MACHINE=alphapca56 ;;
            "EV5.7 (21164PC)")
-               UNAME_MACHINE="alphapca57" ;;
+               UNAME_MACHINE=alphapca57 ;;
            "EV6 (21264)")
-               UNAME_MACHINE="alphaev6" ;;
+               UNAME_MACHINE=alphaev6 ;;
            "EV6.7 (21264A)")
-               UNAME_MACHINE="alphaev67" ;;
+               UNAME_MACHINE=alphaev67 ;;
            "EV6.8CB (21264C)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.8AL (21264B)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.8CX (21264D)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.9A (21264/EV69A)")
-               UNAME_MACHINE="alphaev69" ;;
+               UNAME_MACHINE=alphaev69 ;;
            "EV7 (21364)")
-               UNAME_MACHINE="alphaev7" ;;
+               UNAME_MACHINE=alphaev7 ;;
            "EV7.9 (21364A)")
-               UNAME_MACHINE="alphaev79" ;;
+               UNAME_MACHINE=alphaev79 ;;
        esac
        # A Pn.n version is a patched version.
        # A Vn.n version is a released version.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
        # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
        exitcode=$?
        trap '' 0
@@ -338,16 +383,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
        eval $set_cc_for_build
-       SUN_ARCH="i386"
+       SUN_ARCH=i386
        # If there is a compiler, see if it is configured for 64-bit objects.
        # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
        # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+       if [ "$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 -E - 2>/dev/null) | \
                grep IS_64BIT_ARCH >/dev/null
            then
-               SUN_ARCH="x86_64"
+               SUN_ARCH=x86_64
            fi
        fi
        echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -372,7 +417,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
        exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
                echo m68k-sun-sunos${UNAME_RELEASE}
@@ -558,8 +603,9 @@ EOF
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/oslevel ] ; then
-               IBM_REV=`/usr/bin/oslevel`
+       if [ -x /usr/bin/lslpp ] ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+                          awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
                IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
        fi
@@ -596,13 +642,13 @@ EOF
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
                    case "${sc_cpu_version}" in
-                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
                        case "${sc_kernel_bits}" in
-                         32) HP_ARCH="hppa2.0n" ;;
-                         64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                         32) HP_ARCH=hppa2.0n ;;
+                         64) HP_ARCH=hppa2.0w ;;
+                         '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
@@ -641,11 +687,11 @@ EOF
                    exit (0);
                }
 EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+                   (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ ${HP_ARCH} = "hppa2.0w" ]
+       if [ ${HP_ARCH} = hppa2.0w ]
        then
            eval $set_cc_for_build
 
@@ -658,12 +704,12 @@ EOF
            # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
            # => hppa64-hp-hpux11.23
 
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+           if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
                grep -q __LP64__
            then
-               HP_ARCH="hppa2.0w"
+               HP_ARCH=hppa2.0w
            else
-               HP_ARCH="hppa64"
+               HP_ARCH=hppa64
            fi
        fi
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -768,14 +814,14 @@ EOF
        echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     5000:UNIX_System_V:4.*:*)
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
@@ -805,7 +851,7 @@ EOF
     *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
-    i*:MSYS*:*)
+    *:MSYS*:*)
        echo ${UNAME_MACHINE}-pc-msys
        exit ;;
     i*:windows32*:*)
@@ -853,21 +899,21 @@ EOF
        exit ;;
     *:GNU:*:*)
        # the GNU system
-       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
     aarch64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     alpha:Linux:*:*)
        case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -880,59 +926,60 @@ EOF
          EV68*) UNAME_MACHINE=alphaev68 ;;
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arm*:Linux:*:*)
        eval $set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo ${UNAME_MACHINE}-unknown-linux-gnu
+           echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
            else
-               echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+               echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
            fi
        fi
        exit ;;
     avr32*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     cris:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
     crisv32:Linux:*:*)
-       echo ${UNAME_MACHINE}-axis-linux-gnu
+       echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+       exit ;;
+    e2k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     frv:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     hexagon:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:Linux:*:*)
-       LIBC=gnu
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #ifdef __dietlibc__
-       LIBC=dietlibc
-       #endif
-EOF
-       eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-       echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     ia64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
+    k1om:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m32r*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     m68*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
@@ -951,57 +998,63 @@ EOF
        #endif
 EOF
        eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
        ;;
-    or1k:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+    openrisc*:Linux:*:*)
+       echo or1k-unknown-linux-${LIBC}
        exit ;;
-    or32:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+    or32:Linux:*:* | or1k*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-gnu
+       echo sparc-unknown-linux-${LIBC}
        exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-gnu
+       echo hppa64-unknown-linux-${LIBC}
        exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
        # Look for CPU level
        case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-         PA7*) echo hppa1.1-unknown-linux-gnu ;;
-         PA8*) echo hppa2.0-unknown-linux-gnu ;;
-         *)    echo hppa-unknown-linux-gnu ;;
+         PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+         PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+         *)    echo hppa-unknown-linux-${LIBC} ;;
        esac
        exit ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-gnu
+       echo powerpc64-unknown-linux-${LIBC}
        exit ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-gnu
+       echo powerpc-unknown-linux-${LIBC}
+       exit ;;
+    ppc64le:Linux:*:*)
+       echo powerpc64le-unknown-linux-${LIBC}
+       exit ;;
+    ppcle:Linux:*:*)
+       echo powerpcle-unknown-linux-${LIBC}
        exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo ${UNAME_MACHINE}-ibm-linux
+       echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
        exit ;;
     sh64*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sh*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     tile*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     vax:Linux:*:*)
-       echo ${UNAME_MACHINE}-dec-linux-gnu
+       echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     i*86:DYNIX/ptx:4*:*)
        # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1077,7 +1130,7 @@ EOF
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
        # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
-       # prints for the "djgpp" host, or else GDB configury will decide that
+       # prints for the "djgpp" host, or else GDB configure will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
        exit ;;
@@ -1226,6 +1279,9 @@ EOF
     SX-8R:SUPER-UX:*:*)
        echo sx8r-nec-superux${UNAME_RELEASE}
        exit ;;
+    SX-ACE:SUPER-UX:*:*)
+       echo sxace-nec-superux${UNAME_RELEASE}
+       exit ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
        exit ;;
@@ -1234,24 +1290,36 @@ EOF
        exit ;;
     *:Darwin:*:*)
        UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       case $UNAME_PROCESSOR in
-           i386)
-               eval $set_cc_for_build
-               if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-                 if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                     (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-                     grep IS_64BIT_ARCH >/dev/null
-                 then
-                     UNAME_PROCESSOR="x86_64"
-                 fi
-               fi ;;
-           unknown) UNAME_PROCESSOR=powerpc ;;
-       esac
+       eval $set_cc_for_build
+       if test "$UNAME_PROCESSOR" = unknown ; then
+           UNAME_PROCESSOR=powerpc
+       fi
+       if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
+           if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                   grep IS_64BIT_ARCH >/dev/null
+               then
+                   case $UNAME_PROCESSOR in
+                       i386) UNAME_PROCESSOR=x86_64 ;;
+                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
+                   esac
+               fi
+           fi
+       elif test "$UNAME_PROCESSOR" = i386 ; then
+           # Avoid executing cc on OS X 10.9, as it ships with a stub
+           # that puts up a graphical alert prompting to install
+           # developer tools.  Any system running Mac OS X 10.7 or
+           # later (Darwin 11 and later) is required to have a 64-bit
+           # processor. This is not true of the ARM version of Darwin
+           # that Apple uses in portable devices.
+           UNAME_PROCESSOR=x86_64
+       fi
        echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
-       if test "$UNAME_PROCESSOR" = "x86"; then
+       if test "$UNAME_PROCESSOR" = x86; then
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
@@ -1282,7 +1350,7 @@ EOF
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
        # operating systems.
-       if test "$cputype" = "386"; then
+       if test "$cputype" = 386; then
            UNAME_MACHINE=i386
        else
            UNAME_MACHINE="$cputype"
@@ -1324,7 +1392,7 @@ EOF
        echo i386-pc-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
        exit ;;
     i*86:rdos:*:*)
        echo ${UNAME_MACHINE}-pc-rdos
@@ -1335,171 +1403,25 @@ EOF
     x86_64:VMkernel:*:*)
        echo ${UNAME_MACHINE}-unknown-esx
        exit ;;
-esac
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-       "4"
-#else
-       ""
-#endif
-       ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-       printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-       printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-       { echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-       echo c1-convex-bsd
-       exit ;;
-    c2*)
-       if getsysinfo -f scalar_acc
-       then echo c32-convex-bsd
-       else echo c2-convex-bsd
-       fi
-       exit ;;
-    c34*)
-       echo c34-convex-bsd
+    amd64:Isilon\ OneFS:*:*)
+       echo x86_64-unknown-onefs
        exit ;;
-    c38*)
-       echo c38-convex-bsd
-       exit ;;
-    c4*)
-       echo c4-convex-bsd
-       exit ;;
-    esac
-fi
+esac
 
 cat >&2 <<EOF
 $0: unable to guess system type
 
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
 
 config.guess timestamp = $timestamp
 
index c38b914..98183ff 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-2013 Free Software Foundation, Inc.
+#   Copyright 1996-2016 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
@@ -367,11 +367,7 @@ else
     dgux*)
       hardcode_libdir_flag_spec='-L$libdir'
       ;;
-    freebsd2.2*)
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      ;;
-    freebsd2*)
+    freebsd2.[01]*)
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
@@ -548,13 +544,11 @@ case "$host_os" in
   dgux*)
     library_names_spec='$libname$shrext'
     ;;
+  freebsd[23].*)
+    library_names_spec='$libname$shrext$versuffix'
+    ;;
   freebsd* | dragonfly*)
-    case "$host_os" in
-      freebsd[123]*)
-        library_names_spec='$libname$shrext$versuffix' ;;
-      *)
-        library_names_spec='$libname$shrext' ;;
-    esac
+    library_names_spec='$libname$shrext'
     ;;
   gnu*)
     library_names_spec='$libname$shrext'
index 872199a..9feb73b 100755 (executable)
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2013 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2013-02-12'
+timestamp='2016-06-20'
 
 # 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
@@ -25,7 +25,7 @@ timestamp='2013-02-12'
 # of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+# Please send patches to <config-patches@gnu.org>.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -33,7 +33,7 @@ timestamp='2013-02-12'
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -53,8 +53,7 @@ timestamp='2013-02-12'
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
@@ -68,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2013 Free Software Foundation, Inc.
+Copyright 1992-2016 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."
@@ -117,7 +116,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
@@ -252,19 +251,21 @@ case $basic_machine in
        | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
        | am33_2.0 \
-       | arc \
+       | arc | arceb \
        | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
        | avr | avr32 \
+       | ba \
        | be32 | be64 \
        | bfin \
-       | c4x | clipper \
+       | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
-       | epiphany \
-       | fido | fr30 | frv \
+       | e2k | epiphany \
+       | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
+       | k1om \
        | le32 | le64 \
        | lm32 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
@@ -282,8 +283,10 @@ case $basic_machine in
        | mips64vr5900 | mips64vr5900el \
        | mipsisa32 | mipsisa32el \
        | mipsisa32r2 | mipsisa32r2el \
+       | mipsisa32r6 | mipsisa32r6el \
        | mipsisa64 | mipsisa64el \
        | mipsisa64r2 | mipsisa64r2el \
+       | mipsisa64r6 | mipsisa64r6el \
        | mipsisa64sb1 | mipsisa64sb1el \
        | mipsisa64sr71k | mipsisa64sr71kel \
        | mipsr5900 | mipsr5900el \
@@ -295,14 +298,14 @@ case $basic_machine in
        | nds32 | nds32le | nds32be \
        | nios | nios2 | nios2eb | nios2el \
        | ns16k | ns32k \
-       | open8 \
-       | or1k | or32 \
+       | open8 | or1k | or1knd | or32 \
        | pdp10 | pdp11 | pj | pjl \
        | powerpc | powerpc64 | powerpc64le | powerpcle \
        | pyramid \
+       | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -310,6 +313,7 @@ case $basic_machine in
        | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
        | ubicom32 \
        | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+       | visium \
        | we32k \
        | x86 | xc16x | xstormy16 | xtensa \
        | z8k | z80)
@@ -324,7 +328,10 @@ case $basic_machine in
        c6x)
                basic_machine=tic6x-unknown
                ;;
-       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip)
+       leon|leon[3-9])
+               basic_machine=sparc-$basic_machine
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
                basic_machine=$basic_machine-unknown
                os=-none
                ;;
@@ -366,21 +373,23 @@ case $basic_machine in
        | aarch64-* | aarch64_be-* \
        | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
        | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+       | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
+       | ba-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | clipper-* | craynv-* | cydra-* \
+       | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
+       | e2k-* | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
        | hexagon-* \
        | i*86-* | i860-* | i960-* | ia64-* \
        | ip2k-* | iq2000-* \
+       | k1om-* \
        | le32-* | le64-* \
        | lm32-* \
        | m32c-* | m32r-* | m32rle-* \
@@ -400,8 +409,10 @@ case $basic_machine in
        | mips64vr5900-* | mips64vr5900el-* \
        | mipsisa32-* | mipsisa32el-* \
        | mipsisa32r2-* | mipsisa32r2el-* \
+       | mipsisa32r6-* | mipsisa32r6el-* \
        | mipsisa64-* | mipsisa64el-* \
        | mipsisa64r2-* | mipsisa64r2el-* \
+       | mipsisa64r6-* | mipsisa64r6el-* \
        | mipsisa64sb1-* | mipsisa64sb1el-* \
        | mipsisa64sr71k-* | mipsisa64sr71kel-* \
        | mipsr5900-* | mipsr5900el-* \
@@ -413,16 +424,18 @@ case $basic_machine in
        | nios-* | nios2-* | nios2eb-* | nios2el-* \
        | none-* | np1-* | ns16k-* | ns32k-* \
        | open8-* \
+       | or1k*-* \
        | orion-* \
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
+       | riscv32-* | riscv64-* \
        | rl78-* | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
        | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tile*-* \
@@ -430,6 +443,7 @@ case $basic_machine in
        | ubicom32-* \
        | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
        | vax-* \
+       | visium-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* \
        | xstormy16-* | xtensa*-* \
@@ -506,6 +520,9 @@ case $basic_machine in
                basic_machine=i386-pc
                os=-aros
                ;;
+       asmjs)
+               basic_machine=asmjs-unknown
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -626,6 +643,14 @@ case $basic_machine in
                basic_machine=m68k-bull
                os=-sysv3
                ;;
+       e500v[12])
+               basic_machine=powerpc-unknown
+               os=$os"spe"
+               ;;
+       e500v[12]-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=$os"spe"
+               ;;
        ebmon29k)
                basic_machine=a29k-amd
                os=-ebmon
@@ -767,6 +792,9 @@ case $basic_machine in
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       leon-*|leon[3-9]-*)
+               basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
+               ;;
        m68knommu)
                basic_machine=m68k-unknown
                os=-linux
@@ -794,7 +822,7 @@ case $basic_machine in
                os=-mingw64
                ;;
        mingw32)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-mingw32
                ;;
        mingw32ce)
@@ -822,6 +850,10 @@ case $basic_machine in
                basic_machine=powerpc-unknown
                os=-morphos
                ;;
+       moxiebox)
+               basic_machine=moxie-unknown
+               os=-moxiebox
+               ;;
        msdos)
                basic_machine=i386-pc
                os=-msdos
@@ -830,7 +862,7 @@ case $basic_machine in
                basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
                ;;
        msys)
-               basic_machine=i386-pc
+               basic_machine=i686-pc
                os=-msys
                ;;
        mvs)
@@ -1354,27 +1386,28 @@ case $os in
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
              | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
+             | -aos* | -aros* | -cloudabi* | -sortix* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -bitrig* | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
+             | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
              | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
              | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+             | -onefs* | -tirtos* | -phoenix*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1506,6 +1539,8 @@ case $os in
                ;;
        -nacl*)
                ;;
+       -ios)
+               ;;
        -none)
                ;;
        *)
@@ -1546,6 +1581,9 @@ case $basic_machine in
        c4x-* | tic4x-*)
                os=-coff
                ;;
+       c8051-*)
+               os=-elf
+               ;;
        hexagon-*)
                os=-elf
                ;;
@@ -1589,9 +1627,6 @@ case $basic_machine in
        mips*-*)
                os=-elf
                ;;
-       or1k-*)
-               os=-elf
-               ;;
        or32-*)
                os=-coff
                ;;
index 91d4bf8..28ce42a 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-10-18.11; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2015 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -517,6 +517,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -750,6 +751,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 0bd8ce8..b4f3251 100755 (executable)
@@ -3,11 +3,11 @@
 # controlled .prev-version file, automate the procedure by which we record
 # the date, release-type and version string in the NEWS file.  That commit
 # will serve to identify the release, so apply a signed tag to it as well.
-VERSION=2012-08-01.09 # UTC
+VERSION=2016-01-12.23 # UTC
 
 # Note: this is a bash script (could be zsh or dash)
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -94,7 +94,7 @@ do
       opt=$(echo "$1" | sed -e 's/=.*//')
       val=$(echo "$1" | sed -e 's/[^=]*=//')
       shift
-      set dummy "$opt" "$val" ${1+"$@"}; shift
+      set dummy "$opt" "$val" "$@"; shift
       ;;
   esac
 
@@ -174,6 +174,6 @@ git tag -s -m "$pkg $ver" v$ver HEAD || die 'git tag failed'
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "VERSION="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: " # UTC"
 # End:
index 98c7523..fef6280 100755 (executable)
@@ -2,10 +2,9 @@
 # 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=2013-03-08.15
+scriptversion=2016-05-20.09
 
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
-# Free Software Foundation, Inc.
+# Copyright 2003-2016 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -21,17 +20,16 @@ scriptversion=2013-03-08.15
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # Original author: Mohit Agarwal.
-# Send bug reports and any other correspondence to bug-texinfo@gnu.org.
+# Send bug reports and any other correspondence to bug-gnulib@gnu.org.
 #
 # The latest version of this script, and the companion template, is
-# available from Texinfo CVS:
-# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh
-# http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template
+# available from the Gnulib repository:
 #
-# An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib).
+# http://git.savannah.gnu.org/cgit/gnulib.git/tree/build-aux/gendocs.sh
+# http://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/gendocs_template
 
 # TODO:
-# - image importation was only implemented for HTML generated by
+# - image importing was only implemented for HTML generated by
 #   makeinfo.  But it should be simple enough to adjust.
 # - images are not imported in the source tarball.  All the needed
 #   formats (PDF, PNG, etc.) should be included.
@@ -39,12 +37,12 @@ scriptversion=2013-03-08.15
 prog=`basename "$0"`
 srcdir=`pwd`
 
-scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh"
-templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template"
+scripturl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/build-aux/gendocs.sh"
+templateurl="http://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/gendocs_template"
 
 : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="}
 : ${MAKEINFO="makeinfo"}
-: ${TEXI2DVI="texi2dvi -t @finalout"}
+: ${TEXI2DVI="texi2dvi"}
 : ${DOCBOOK2HTML="docbook2html"}
 : ${DOCBOOK2PDF="docbook2pdf"}
 : ${DOCBOOK2TXT="docbook2txt"}
@@ -54,9 +52,27 @@ templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/
 unset CDPATH
 unset use_texi2html
 
+MANUAL_TITLE=
+PACKAGE=
+EMAIL=webmasters@gnu.org  # please override with --email
+commonarg= # passed to all makeinfo/texi2html invcations.
+dirargs=   # passed to all tools (-I dir).
+dirs=      # -I directories.
+htmlarg="--css-ref=/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
+infoarg=--no-split
+generate_ascii=true
+generate_html=true
+generate_info=true
+generate_tex=true
+outdir=manual
+source_extra=
+split=node
+srcfile=
+texarg="-t @finalout"
+
 version="gendocs.sh $scriptversion
 
-Copyright 2013 Free Software Foundation, Inc.
+Copyright 2016 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."
@@ -75,11 +91,16 @@ Options:
   -o OUTDIR    write files into OUTDIR, instead of manual/.
   -I DIR       append DIR to the Texinfo search path.
   --common ARG pass ARG in all invocations.
-  --html ARG   pass ARG to makeinfo or texi2html for HTML targets.
+  --html ARG   pass ARG to makeinfo or texi2html for HTML targets,
+                 instead of '$htmlarg'.
   --info ARG   pass ARG to makeinfo for Info, instead of --no-split.
   --no-ascii   skip generating the plain text output.
+  --no-html    skip generating the html output.
+  --no-info    skip generating the info output.
+  --no-tex     skip generating the dvi and pdf output.
   --source ARG include ARG in tar archive of sources.
   --split HOW  make split HTML by node, section, chapter; default node.
+  --tex ARG    pass ARG to texi2dvi for DVI and PDF, instead of -t @finalout.
 
   --texi2html  use texi2html to make HTML target, with all split versions.
   --docbook    convert through DocBook too (xml, txt, html, pdf).
@@ -131,23 +152,9 @@ locale, since that's the language of most Texinfo manuals.  If you
 happen to have a non-English manual and non-English web site, see the
 SETLANG setting in the source.
 
-Email bug reports or enhancement requests to bug-texinfo@gnu.org.
+Email bug reports or enhancement requests to bug-gnulib@gnu.org.
 "
 
-MANUAL_TITLE=
-PACKAGE=
-EMAIL=webmasters@gnu.org  # please override with --email
-commonarg= # passed to all makeinfo/texi2html invcations.
-dirargs=   # passed to all tools (-I dir).
-dirs=      # -I's directories.
-htmlarg=
-infoarg=--no-split
-generate_ascii=true
-outdir=manual
-source_extra=
-split=node
-srcfile=
-
 while test $# -gt 0; do
   case $1 in
     -s)          shift; srcfile=$1;;
@@ -159,8 +166,12 @@ while test $# -gt 0; do
     --html)      shift; htmlarg=$1;;
     --info)      shift; infoarg=$1;;
     --no-ascii)  generate_ascii=false;;
+    --no-html)   generate_ascii=false;;
+    --no-info)   generate_info=false;;
+    --no-tex)    generate_tex=false;;
     --source)    shift; source_extra=$1;;
     --split)     shift; split=$1;;
+    --tex)       shift; texarg=$1;;
     --texi2html) use_texi2html=1;;
 
     --help)      echo "$usage"; exit 0;;
@@ -221,8 +232,9 @@ calcsize()
 
 # copy_images OUTDIR HTML-FILE...
 # -------------------------------
-# Copy all the images needed by the HTML-FILEs into OUTDIR.  Look
-# for them in the -I directories.
+# Copy all the images needed by the HTML-FILEs into OUTDIR.
+# Look for them in . and the -I directories; this is simpler than what
+# makeinfo supports with -I, but hopefully it will suffice.
 copy_images()
 {
   local odir
@@ -232,7 +244,7 @@ copy_images()
 BEGIN {
   \$me = '$prog';
   \$odir = '$odir';
-  @dirs = qw($dirs);
+  @dirs = qw($dirs);
 }
 " -e '
 /<img src="(.*?)"/g && ++$need{$1};
@@ -270,31 +282,39 @@ echo "Making output for $srcfile"
 echo " in `pwd`"
 mkdir -p "$outdir/"
 
-cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
-echo "Generating info... ($cmd)"
-eval "$cmd"
-tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
-ls -l "$outdir/$PACKAGE.info.tar.gz"
-info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
-# do not mv the info files, there's no point in having them available
-# separately on the web.
-
-cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\""
-printf "\nGenerating dvi... ($cmd)\n"
-eval "$cmd"
-# compress/finish dvi:
-gzip -f -9 $PACKAGE.dvi
-dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
-mv $PACKAGE.dvi.gz "$outdir/"
-ls -l "$outdir/$PACKAGE.dvi.gz"
-
-cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\""
-printf "\nGenerating pdf... ($cmd)\n"
-eval "$cmd"
-pdf_size=`calcsize $PACKAGE.pdf`
-mv $PACKAGE.pdf "$outdir/"
-ls -l "$outdir/$PACKAGE.pdf"
+# \f
+if $generate_info; then
+  cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\""
+  echo "Generating info... ($cmd)"
+  rm -f $PACKAGE.info* # get rid of any strays
+  eval "$cmd"
+  tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info*
+  ls -l "$outdir/$PACKAGE.info.tar.gz"
+  info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"`
+  # do not mv the info files, there's no point in having them available
+  # separately on the web.
+fi  # end info
+
+# \f
+if $generate_tex; then
+  cmd="$SETLANG $TEXI2DVI $dirargs $texarg \"$srcfile\""
+  printf "\nGenerating dvi... ($cmd)\n"
+  eval "$cmd"
+  # compress/finish dvi:
+  gzip -f -9 $PACKAGE.dvi
+  dvi_gz_size=`calcsize $PACKAGE.dvi.gz`
+  mv $PACKAGE.dvi.gz "$outdir/"
+  ls -l "$outdir/$PACKAGE.dvi.gz"
+
+  cmd="$SETLANG $TEXI2DVI --pdf $dirargs $texarg \"$srcfile\""
+  printf "\nGenerating pdf... ($cmd)\n"
+  eval "$cmd"
+  pdf_size=`calcsize $PACKAGE.pdf`
+  mv $PACKAGE.pdf "$outdir/"
+  ls -l "$outdir/$PACKAGE.pdf"
+fi # end tex (dvi + pdf)
 
+# \f
 if $generate_ascii; then
   opt="-o $PACKAGE.txt --no-split --no-headers $commonarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\""
@@ -307,6 +327,9 @@ if $generate_ascii; then
   ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz"
 fi
 
+# \f
+
+if $generate_html; then
 # Split HTML at level $1.  Used for texi2html.
 html_split()
 {
@@ -381,7 +404,9 @@ else # use texi2html:
   html_split chapter
   html_split section
 fi
+fi # end html
 
+# \f
 printf "\nMaking .tar.gz for sources...\n"
 d=`dirname $srcfile`
 (
@@ -392,6 +417,8 @@ d=`dirname $srcfile`
 )
 texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"`
 
+# \f
+# Do everything again through docbook.
 if test -n "$docbook"; then
   opt="-o - --docbook $commonarg"
   cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml"
@@ -430,7 +457,8 @@ if test -n "$docbook"; then
   mv $PACKAGE-db.pdf "$outdir/"
 fi
 
-printf "\nMaking index file...\n"
+# \f
+printf "\nMaking index.html for $PACKAGE...\n"
 if test -z "$use_texi2html"; then
   CONDS="/%%IF  *HTML_SECTION%%/,/%%ENDIF  *HTML_SECTION%%/d;\
          /%%IF  *HTML_CHAPTER%%/,/%%ENDIF  *HTML_CHAPTER%%/d"
index 3468247..bd2c4b6 100755 (executable)
@@ -1,8 +1,8 @@
 #!/bin/sh
 # Print a version string.
-scriptversion=2012-12-31.23; # UTC
+scriptversion=2016-05-08.18; # UTC
 
-# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+# Copyright (C) 2007-2016 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -85,8 +85,9 @@ Print a version string.
 
 Options:
 
-   --prefix           prefix of git tags (default 'v')
-   --fallback         fallback version to use if \"git --version\" fails
+   --prefix PREFIX    prefix of git tags (default 'v')
+   --fallback VERSION
+                      fallback version to use if \"git --version\" fails
 
    --help             display this help and exit
    --version          output version information and exit
@@ -100,8 +101,8 @@ while test $# -gt 0; do
   case $1 in
     --help) echo "$usage"; exit 0;;
     --version) echo "$version"; exit 0;;
-    --prefix) shift; prefix="$1";;
-    --fallback) shift; fallback="$1";;
+    --prefix) shift; prefix=${1?};;
+    --fallback) shift; fallback=${1?};;
     -*)
       echo "$0: Unknown option '$1'." >&2
       echo "$0: Try '--help' for more information." >&2
@@ -214,12 +215,12 @@ if test "x$v_from_git" != x; then
 fi
 
 # Omit the trailing newline, so that m4_esyscmd can use the result directly.
-echo "$v" | tr -d "$nl"
+printf %s "$v"
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index e02d34c..83bafdf 100755 (executable)
@@ -1,15 +1,15 @@
-eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
+eval '(exit $?0)' && eval 'exec perl -wS "$0" "$@"'
   & eval 'exec perl -wS "$0" $argv:q'
     if 0;
 # Convert git log output to ChangeLog format.
 
-my $VERSION = '2012-07-29 06:11'; # UTC
+my $VERSION = '2016-03-22 21: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
 # do its job.  Otherwise, update this string manually.
 
-# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -72,6 +72,9 @@ OPTIONS:
                   directory can be derived.
    --since=DATE convert only the logs since DATE;
                   the default is to convert all log entries.
+   --until=DATE convert only the logs older than DATE.
+   --ignore-matching=PAT ignore commit messages whose first lines match PAT.
+   --ignore-line=PAT ignore lines of commit messages that match PAT.
    --format=FMT set format string for commit subject and body;
                   see 'man git-log' for the list of format metacharacters;
                   the default is '%s%n%b%n'
@@ -220,10 +223,13 @@ sub git_dir_option($)
 
 {
   my $since_date;
+  my $until_date;
   my $format_string = '%s%n%b%n';
   my $amend_file;
   my $append_dot = 0;
   my $cluster = 1;
+  my $ignore_matching;
+  my $ignore_line;
   my $strip_tab = 0;
   my $strip_cherry_pick = 0;
   my $srcdir;
@@ -232,10 +238,13 @@ sub git_dir_option($)
      help => sub { usage 0 },
      version => sub { print "$ME version $VERSION\n"; exit },
      'since=s' => \$since_date,
+     'until=s' => \$until_date,
      'format=s' => \$format_string,
      'amend=s' => \$amend_file,
      'append-dot' => \$append_dot,
      'cluster!' => \$cluster,
+     'ignore-matching=s' => \$ignore_matching,
+     'ignore-line=s' => \$ignore_line,
      'strip-tab' => \$strip_tab,
      'strip-cherry-pick' => \$strip_cherry_pick,
      'srcdir=s' => \$srcdir,
@@ -243,6 +252,8 @@ sub git_dir_option($)
 
   defined $since_date
     and unshift @ARGV, "--since=$since_date";
+  defined $until_date
+    and unshift @ARGV, "--until=$until_date";
 
   # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
   # that makes a correction in the log or attribution of that commit.
@@ -259,6 +270,7 @@ sub git_dir_option($)
   my $prev_multi_paragraph;
   my $prev_date_line = '';
   my @prev_coauthors = ();
+  my @skipshas = ();
   while (1)
     {
       defined (my $in = <PIPE>)
@@ -279,6 +291,19 @@ sub git_dir_option($)
       $sha =~ /^[0-9a-fA-F]{40}$/
         or die "$ME:$.: invalid SHA1: $sha\n";
 
+      my $skipflag = 0;
+      if (@skipshas)
+        {
+          foreach(@skipshas)
+            {
+              if ($sha =~ /^$_/)
+                {
+                  $skipflag = $_;
+                  last;
+                }
+            }
+        }
+
       # If this commit's log requires any transformation, do it now.
       my $code = $amend_code->{$sha};
       if (defined $code)
@@ -306,7 +331,7 @@ sub git_dir_option($)
           $rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
         }
 
-      my @line = split "\n", $rest;
+      my @line = split /[ \t]*\n/, $rest;
       my $author_line = shift @line;
       defined $author_line
         or die "$ME:$.: unexpected EOF\n";
@@ -316,17 +341,18 @@ sub git_dir_option($)
 
       # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
       # `(tiny change)' annotation.
-      my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+      my $tiny = (grep (/^(?:Copyright-paperwork-exempt|Tiny-change):\s+[Yy]es$/, @line)
                   ? '  (tiny change)' : '');
 
       my $date_line = sprintf "%s  %s$tiny\n",
-        strftime ("%F", localtime ($1)), $2;
+        strftime ("%Y-%m-%d", localtime ($1)), $2;
 
       my @coauthors = grep /^Co-authored-by:.*$/, @line;
       # Omit meta-data lines we've already interpreted.
       @line = grep !/^(?:Signed-off-by:[ ].*>$
                        |Co-authored-by:[ ]
                        |Copyright-paperwork-exempt:[ ]
+                       |Tiny-change:[ ]
                        )/x, @line;
 
       # Remove leading and trailing blank lines.
@@ -336,68 +362,109 @@ sub git_dir_option($)
           while ($line[$#line] =~ /^\s*$/) { pop @line; }
         }
 
-      # Record whether there are two or more paragraphs.
-      my $multi_paragraph = grep /^\s*$/, @line;
-
-      # Format 'Co-authored-by: A U Thor <email@example.com>' lines in
-      # standard multi-author ChangeLog format.
-      for (@coauthors)
+      # Handle Emacs gitmerge.el "skipped" commits.
+      # Yes, this should be controlled by an option.  So sue me.
+      if ( grep /^(; )?Merge from /, @line )
+      {
+          my $found = 0;
+          foreach (@line)
+          {
+              if (grep /^The following commit.*skipped:$/, $_)
+              {
+                  $found = 1;
+                  ## Reset at each merge to reduce chance of false matches.
+                  @skipshas = ();
+                  next;
+              }
+              if ($found && $_ =~ /^([0-9a-fA-F]{7,}) [^ ]/)
+              {
+                  push ( @skipshas, $1 );
+              }
+          }
+      }
+
+      # Ignore commits that match the --ignore-matching pattern, if specified.
+      if (defined $ignore_matching && @line && $line[0] =~ /$ignore_matching/)
         {
-          s/^Co-authored-by:\s*/\t    /;
-          s/\s*</  </;
-
-          /<.*?@.*\..*>/
-            or warn "$ME: warning: missing email address for "
-              . substr ($_, 5) . "\n";
+          $skipflag = 1;
         }
-
-      # If clustering of commit messages has been disabled, if this header
-      # would be different from the previous date/name/email/coauthors header,
-      # or if this or the previous entry consists of two or more paragraphs,
-      # then print the header.
-      if ( ! $cluster
-          || $date_line ne $prev_date_line
-          || "@coauthors" ne "@prev_coauthors"
-          || $multi_paragraph
-          || $prev_multi_paragraph)
+      elsif ($skipflag)
         {
-          $prev_date_line eq ''
-            or print "\n";
-          print $date_line;
-          @coauthors
-            and print join ("\n", @coauthors), "\n";
+          ## Perhaps only warn if a pattern matches more than once?
+          warn "$ME: warning: skipping $sha due to $skipflag\n";
         }
-      $prev_date_line = $date_line;
-      @prev_coauthors = @coauthors;
-      $prev_multi_paragraph = $multi_paragraph;
 
-      # If there were any lines
-      if (@line == 0)
+      if (! $skipflag)
         {
-          warn "$ME: warning: empty commit message:\n  $date_line\n";
-        }
-      else
-        {
-          if ($append_dot)
+          if (defined $ignore_line && @line)
+            {
+              @line = grep ! /$ignore_line/, @line;
+              while ($line[$#line] =~ /^\s*$/) { pop @line; }
+            }
+
+          # Record whether there are two or more paragraphs.
+          my $multi_paragraph = grep /^\s*$/, @line;
+
+          # Format 'Co-authored-by: A U Thor <email@example.com>' lines in
+          # standard multi-author ChangeLog format.
+          for (@coauthors)
+            {
+              s/^Co-authored-by:\s*/\t    /;
+              s/\s*</  </;
+
+              /<.*?@.*\..*>/
+                or warn "$ME: warning: missing email address for "
+                  . substr ($_, 5) . "\n";
+            }
+
+          # If clustering of commit messages has been disabled, if this header
+          # would be different from the previous date/name/etc. header,
+          # or if this or the previous entry consists of two or more paragraphs,
+          # then print the header.
+          if ( ! $cluster
+              || $date_line ne $prev_date_line
+              || "@coauthors" ne "@prev_coauthors"
+              || $multi_paragraph
+              || $prev_multi_paragraph)
             {
-              # If the first line of the message has enough room, then
-              if (length $line[0] < 72)
+              $prev_date_line eq ''
+                or print "\n";
+              print $date_line;
+              @coauthors
+                and print join ("\n", @coauthors), "\n";
+            }
+          $prev_date_line = $date_line;
+          @prev_coauthors = @coauthors;
+          $prev_multi_paragraph = $multi_paragraph;
+
+          # If there were any lines
+          if (@line == 0)
+            {
+              warn "$ME: warning: empty commit message:\n  $date_line\n";
+            }
+          else
+            {
+              if ($append_dot)
                 {
-                  # append a dot if there is no other punctuation or blank
-                  # at the end.
-                  $line[0] =~ /[[:punct:]\s]$/
-                    or $line[0] .= '.';
+                  # If the first line of the message has enough room, then
+                  if (length $line[0] < 72)
+                    {
+                      # append a dot if there is no other punctuation or blank
+                      # at the end.
+                      $line[0] =~ /[[:punct:]\s]$/
+                        or $line[0] .= '.';
+                    }
                 }
-            }
 
-          # Remove one additional leading TAB from each line.
-          $strip_tab
-            and map { s/^\t// } @line;
+              # Remove one additional leading TAB from each line.
+              $strip_tab
+                and map { s/^\t// } @line;
 
-          # Prefix each non-empty line with a TAB.
-          @line = map { length $_ ? "\t$_" : '' } @line;
+              # Prefix each non-empty line with a TAB.
+              @line = map { length $_ ? "\t$_" : '' } @line;
 
-          print "\n", join ("\n", @line), "\n";
+              print "\n", join ("\n", @line), "\n";
+            }
         }
 
       defined ($in = <PIPE>)
@@ -427,6 +494,6 @@ sub git_dir_option($)
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "my $VERSION = '"
 # time-stamp-format: "%:y-%02m-%02d %02H:%02M"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "'; # UTC"
 # End:
index 268ecc0..271e693 100755 (executable)
@@ -2,9 +2,9 @@
 # Run this after each non-alpha release, to update the web documentation at
 # http://www.gnu.org/software/$pkg/manual/
 
-VERSION=2012-12-16.14; # UTC
+VERSION=2016-01-12.23; # UTC
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
 # This 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,6 +40,7 @@ assumes all documentation is in the doc/ sub-directory.
 Options:
   -C, --builddir=DIR  location of (configured) Makefile (default: .)
   -n, --dry-run       don't actually commit anything
+  -m, --mirror        remove out of date files from document server
   --help              print this help, then exit
   --version           print version number, then exit
 
@@ -107,6 +108,7 @@ find_tool XARGS gxargs xargs
 
 builddir=.
 dryrun=
+rm_stale='echo'
 while test $# != 0
 do
   # Handle --option=value by splitting apart and putting back on argv.
@@ -115,7 +117,7 @@ do
       opt=$(echo "$1" | sed -e 's/=.*//')
       val=$(echo "$1" | sed -e 's/[^=]*=//')
       shift
-      set dummy "$opt" "$val" ${1+"$@"}; shift
+      set dummy "$opt" "$val" "$@"; shift
       ;;
   esac
 
@@ -123,6 +125,7 @@ do
     --help|--version) ${1#--};;
     -C|--builddir) shift; builddir=$1; shift ;;
     -n|--dry-run) dryrun=echo; shift;;
+    -m|--mirror) rm_stale=''; shift;;
     --*) die "unrecognized option: $1";;
     *) break;;
   esac
@@ -159,6 +162,7 @@ $GIT submodule update --recursive
 ./bootstrap
 srcdir=$(pwd)
 cd "$builddir"
+builddir=$(pwd)
   ./config.status --recheck
   ./config.status
   make
@@ -175,13 +179,25 @@ $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
   cd $tmp/$pkg/manual
 
   # Add all the files.  This is simpler than trying to add only the
-  # new ones because of new directories: it would require iterating on
-  # adding the outer directories, and then their contents.
-  #
-  # find guarantees that we add outer directories first.
-  find . -name CVS -prune -o -print             \
+  # new ones because of new directories
+  # First add non empty dirs individually
+  find . -name CVS -prune -o -type d \! -empty -print             \
+    | $XARGS -n1 --no-run-if-empty -- $dryrun $CVS add -ko
+  # Now add all files
+  find . -name CVS -prune -o -type f -print             \
     | $XARGS --no-run-if-empty -- $dryrun $CVS add -ko
 
+  # Report/Remove stale files
+  #   excluding doc server specific files like CVS/* and .symlinks
+  if test -n "$rm_stale"; then
+    echo 'Consider the --mirror option if all of the manual is generated,' >&2
+    echo 'which will run `cvs remove` to remove stale files.' >&2
+  fi
+  { find . \( -name CVS -o -type f -name '.*' \) -prune -o -type f -print
+    (cd "$builddir"/doc/manual/ && find . -type f -print | sed p)
+  } | sort | uniq -u \
+    | $XARGS --no-run-if-empty -- ${rm_stale:-$dryrun} $CVS remove -f
+
   $dryrun $CVS ci -m $version
 )
 
@@ -189,6 +205,6 @@ $RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "VERSION="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 7a137c1..8d0299d 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/sh
 # Sign files and upload them.
 
-scriptversion=2013-03-19.17; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2016 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -435,6 +435,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 377bb86..0360b79 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2016-01-11.22; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='  '
 nl='
 '
-IFS=" ""       $nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-       shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-       case $mode in
-         *' '* | *'    '* | *'
-'*       | *'*'* | *'?'* | *'['*)
-           echo "$0: invalid mode: $mode" >&2
-           exit 1;;
-       esac
-       shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-       shift;;
+        shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-       # Protect names problematic for 'test' and other utilities.
-       case $dst_arg in
-         -* | [=\(\)!]) dst_arg=./$dst_arg;;
-       esac
-       shift;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
-    -T) no_target_directory=true;;
+    -T) is_target_a_directory=never;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)        shift
-       break;;
+    --) shift
+        break;;
 
-    -*)        echo "$0: invalid option: $1" >&2
-       exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -208,6 +204,15 @@ if test $# -eq 0; then
 fi
 
 if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
+if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
   trap "ret=130; $do_exit" 2
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
 
     *[0-7])
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-       u_plus_rw=
+        u_plus_rw=
       else
-       u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -269,41 +274,15 @@ do
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-       echo "$0: $dst_arg: Is a directory" >&2
-       exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-       (dirname "$dst") 2>/dev/null ||
-       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-            X"$dst" : 'X\(//\)[^/]' \| \
-            X"$dst" : 'X\(//\)$' \| \
-            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-       echo X"$dst" |
-           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)[^/].*/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\/\)$/{
-                  s//\1/
-                  q
-                }
-                /^X\(\/\).*/{
-                  s//\1/
-                  q
-                }
-                s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -314,74 +293,74 @@ do
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-       # Create intermediate dirs using mode 755 as modified by the umask.
-       # This is like FreeBSD 'install' as of 1997-10-28.
-       umask=`umask`
-       case $stripcmd.$umask in
-         # Optimize common cases.
-         *[2367][2367]) mkdir_umask=$umask;;
-         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-         *[0-7])
-           mkdir_umask=`expr $umask + 22 \
-             - $umask % 100 % 40 + $umask % 20 \
-             - $umask % 10 % 4 + $umask % 2
-           `;;
-         *) mkdir_umask=$umask,go-w;;
-       esac
-
-       # With -d, create the new directory with the user-specified mode.
-       # Otherwise, rely on $mkdir_umask.
-       if test -n "$dir_arg"; then
-         mkdir_mode=-m$mode
-       else
-         mkdir_mode=
-       fi
-
-       posix_mkdir=false
-       case $umask in
-         *[123567][0-7][0-7])
-           # POSIX mkdir -p sets u+wx bits regardless of umask, which
-           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-           ;;
-         *)
-           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-           if (umask $mkdir_umask &&
-               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-           then
-             if test -z "$dir_arg" || {
-                  # Check for POSIX incompatibilities with -m.
-                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-                  # other-writable bit of parent directory when it shouldn't.
-                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
-                  case $ls_ld_tmpdir in
-                    d????-?r-*) different_mode=700;;
-                    d????-?--*) different_mode=755;;
-                    *) false;;
-                  esac &&
-                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-                  }
-                }
-             then posix_mkdir=:
-             fi
-             rmdir "$tmpdir/d" "$tmpdir"
-           else
-             # Remove any dirs left behind by ancient mkdir implementations.
-             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-           fi
-           trap '' 0;;
-       esac;;
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+            then
+              if test -z "$dir_arg" || {
+                   # Check for POSIX incompatibilities with -m.
+                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                   # other-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/d" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
     esac
 
     if
       $posix_mkdir && (
-       umask $mkdir_umask &&
-       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -391,53 +370,51 @@ do
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-       /*) prefix='/';;
-       [-=\(\)!]*) prefix='./';;
-       *)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-       test X"$d" = X && continue
-
-       prefix=$prefix$d
-       if test -d "$prefix"; then
-         prefixes=
-       else
-         if $posix_mkdir; then
-           (umask=$mkdir_umask &&
-            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-           # Don't fail if two instances are running concurrently.
-           test -d "$prefix" || exit 1
-         else
-           case $prefix in
-             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-             *) qprefix=$prefix;;
-           esac
-           prefixes="$prefixes '$qprefix'"
-         fi
-       fi
-       prefix=$prefix/
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-       # Don't fail if two instances are running concurrently.
-       (umask $mkdir_umask &&
-        eval "\$doit_exec \$mkdirprog $prefixes") ||
-         test -d "$dstdir" || exit 1
-       obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -472,15 +449,12 @@ do
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
+       set +f &&
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -493,24 +467,24 @@ do
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-       # Now remove or move aside any old file at destination location.
-       # We try this two ways since rm can't unlink itself on some
-       # systems and the destination file might be busy for other
-       # reasons.  In this case, the final cleanup might fail but the new
-       # file should still install successfully.
-       {
-         test ! -f "$dst" ||
-         $doit $rmcmd -f "$dst" 2>/dev/null ||
-         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-         } ||
-         { echo "$0: cannot unlink or rename $dst" >&2
-           (exit 1); exit 1
-         }
-       } &&
-
-       # Now rename the file to the real destination.
-       $doit $mvcmd "$dsttmp" "$dst"
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
@@ -522,6 +496,6 @@ done
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index b3719cf..6022eff 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/sh
 # Get modification time of a file or directory and pretty-print it.
 
-scriptversion=2010-08-21.06; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1995-2013 Free Software Foundation, Inc.
+# Copyright (C) 1995-2015 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
@@ -219,6 +219,6 @@ echo $day $month $year
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index cdea514..594918c 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2015 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
@@ -160,7 +160,7 @@ give_advice ()
       ;;
    autom4te*)
       echo "You might have modified some maintainer files that require"
-      echo "the 'automa4te' program to be rebuilt."
+      echo "the 'autom4te' program to be rebuilt."
       program_details 'autom4te'
       ;;
     bison*|yacc*)
@@ -210,6 +210,6 @@ exit $st
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 8ea2a47..584649f 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific arguments must not be NULL.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index b35b933..813f2e2 100644 (file)
@@ -1,5 +1,5 @@
 /* C++ compatible function declaration macros.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 1347c27..843db76 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for declaring that specific function parameters are not used.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 1736a1b..2948b47 100644 (file)
@@ -1,5 +1,5 @@
 /* A C macro for emitting warnings if a function is used.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 32bf39e..d7eac82 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # test-driver - basic testsuite driver script.
 
-scriptversion=2012-06-27.10; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2015 Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -44,13 +44,12 @@ print_usage ()
 Usage:
   test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
               [--expect-failure={yes|no}] [--color-tests={yes|no}]
-              [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+              [--enable-hard-errors={yes|no}] [--]
+              TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
 The '--test-name', '--log-file' and '--trs-file' options are mandatory.
 END
 }
 
-# TODO: better error handling in option parsing (in particular, ensure
-# TODO: $log_file, $trs_file and $test_name are defined).
 test_name= # Used for reporting.
 log_file=  # Where to save the output of the test script.
 trs_file=  # Where to save the metadata of the test run.
@@ -69,10 +68,23 @@ while test $# -gt 0; do
   --enable-hard-errors) enable_hard_errors=$2; shift;;
   --) shift; break;;
   -*) usage_error "invalid option: '$1'";;
+   *) break;;
   esac
   shift
 done
 
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file"  = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file"  = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+  usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+  usage_error "missing argument"
+fi
+
 if test $color_tests = yes; then
   # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
   red='\e[0;31m' # Red.
@@ -94,11 +106,14 @@ trap "st=143; $do_exit" 15
 # Test script is run here.
 "$@" >$log_file 2>&1
 estatus=$?
+
 if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
+  tweaked_estatus=1
+else
+  tweaked_estatus=$estatus
 fi
 
-case $estatus:$expect_failure in
+case $tweaked_estatus:$expect_failure in
   0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
   0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
   77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
@@ -107,6 +122,12 @@ case $estatus:$expect_failure in
   *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
 esac
 
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
 # Report outcome to console.
 echo "${col}${res}${std}: $test_name"
 
@@ -122,6 +143,6 @@ echo ":copy-in-global-log: $gcopy" >> $trs_file
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
index 85f184c..9ff8c37 100644 (file)
@@ -3,11 +3,12 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2013-02-01.11}
+\def\texinfoversion{2016-08-06.12}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
+% 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
 \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}%
+
 \chardef\other=12
 
 % We never want plain's \outer definition of \+ in Texinfo.
 \let\ptexraggedright=\raggedright
 \let\ptexrbrace=\}
 \let\ptexslash=\/
+\let\ptexsp=\sp
 \let\ptexstar=\*
+\let\ptexsup=\sup
 \let\ptext=\t
 \let\ptextop=\top
 {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode
 \ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
 \ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
 
-% Since the category of space is not known, we have to be careful.
-\chardef\spacecat = 10
-\def\spaceisspace{\catcode`\ =\spacecat}
+% Give the space character the catcode for a space.
+\def\spaceisspace{\catcode`\ =10\relax}
 
-% sometimes characters are active, so we need control sequences.
-\chardef\ampChar   = `\&
-\chardef\colonChar = `\:
-\chardef\commaChar = `\,
 \chardef\dashChar  = `\-
-\chardef\dotChar   = `\.
-\chardef\exclamChar= `\!
-\chardef\hashChar  = `\#
-\chardef\lquoteChar= `\`
-\chardef\questChar = `\?
-\chardef\rquoteChar= `\'
-\chardef\semiChar  = `\;
 \chardef\slashChar = `\/
 \chardef\underChar = `\_
 
   wide-spread wrap-around
 }
 
-% Margin to add to right of even pages, to left of odd pages.
-\newdimen\bindingoffset
-\newdimen\normaloffset
-\newdimen\pagewidth \newdimen\pageheight
-
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
-%
-\def\finalout{\overfullrule=0pt }
-
 % Sometimes it is convenient to have everything in the transcript file
 % and nothing on the terminal.  We don't just call \tracingall here,
 % since that produces some useless output on the terminal.  We also make
 \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
   \removelastskip\penalty-200\bigskip\fi\fi}
 
+%\f Output routine
+%
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt }
+
 % Do @cropmarks to get crop marks.
 %
 \newif\ifcropmarks
 %
 % Another complication is to let the user choose whether \thischapter
 % (\thissection) refers to the chapter (section) in effect at the top
-% of a page, or that at the bottom of a page.  The solution is
-% described on page 260 of The TeXbook.  It involves outputting two
-% marks for the sectioning macros, one before the section break, and
-% one after.  I won't pretend I can describe this better than DEK...
+% of a page, or that at the bottom of a page.
+
+% \domark is called twice inside \chapmacro, to add one
+% mark before the section break, and one after.
+%   In the second call \prevchapterdefs is the same as \lastchapterdefs,
+% and \prevsectiondefs is the same as \lastsectiondefs.
+%   Then if the page is not broken at the mark, some of the previous
+% section appears on the page, and we can get the name of this section
+% from \firstmark for @everyheadingmarks top.
+%   @everyheadingmarks bottom uses \botmark.
+%
+% See page 260 of The TeXbook.
 \def\domark{%
   \toks0=\expandafter{\lastchapterdefs}%
   \toks2=\expandafter{\lastsectiondefs}%
   \toks6=\expandafter{\prevsectiondefs}%
   \toks8=\expandafter{\lastcolordefs}%
   \mark{%
-                   \the\toks0 \the\toks2
-      \noexpand\or \the\toks4 \the\toks6
-    \noexpand\else \the\toks8
+                   \the\toks0 \the\toks2  % 0: marks for @everyheadingmarks top
+      \noexpand\or \the\toks4 \the\toks6  % 1: for @everyheadingmarks bottom
+    \noexpand\else \the\toks8             % 2: color marks
   }%
 }
+
+% \gettopheadingmarks, \getbottomheadingmarks,
+% \getcolormarks - extract needed part of mark.
+%
 % \topmark doesn't work for the very first chapter (after the title
 % page or the contents), so we use \firstmark there -- this gets us
 % the mark with the chapter defs, unless the user sneaks in, e.g.,
 % Avoid "undefined control sequence" errors.
 \def\lastchapterdefs{}
 \def\lastsectiondefs{}
+\def\lastsection{}
 \def\prevchapterdefs{}
 \def\prevsectiondefs{}
 \def\lastcolordefs{}
 
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\txipagewidth \newdimen\txipageheight
+
 % Main output routine.
+%
 \chardef\PAGE = 255
 \output = {\onepageout{\pagecontents\PAGE}}
 
 \newbox\headlinebox
 \newbox\footlinebox
 
-% \onepageout takes a vbox as an argument.  Note that \pagecontents
-% does insertions, but you have to call it yourself.
+% \onepageout takes a vbox as an argument.
+% \shipout a vbox for a single page, adding an optional header, footer,
+% cropmarks, and footnote.  This also causes index entries for this page
+% to be written to the auxiliary files.
+%
 \def\onepageout#1{%
   \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
   %
   \ifodd\pageno  \advance\hoffset by \bindingoffset
   \else \advance\hoffset by -\bindingoffset\fi
   %
+  % 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).
+  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
+  %
+  % 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.
+  %
+  % This is used to check if we are on the first page of a chapter.
+  \ifcase1\topmark\fi
+  \let\prevchaptername\thischaptername
+  \ifcase0\firstmark\fi
+  \let\curchaptername\thischaptername
+  %
   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
-  \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
   \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
-  \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+  %
+  \ifx\curchaptername\prevchaptername
+    \let\thischapterheading\thischapter
+  \else
+    % \thischapterheading is the same as \thischapter except it is blank
+    % for the first page of a chapter.  This is to prevent the chapter name 
+    % being shown twice.
+    \def\thischapterheading{}%
+  \fi
+  %
+  \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+  \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
   %
   {%
+    % Set context for writing to auxiliary files like index files.
     % Have to do this stuff outside the \shipout because we want it to
     % take effect in \write's, yet the group defined by the \vbox ends
     % before the \shipout runs.
     \normalturnoffactive  % \ in index entries must not stay \, e.g., if
                % the page break happens to be in the middle of an example.
                % We don't want .vr (or whatever) entries like this:
-               % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+               % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
                % "\acronym" won't work when it's read back in;
                % it needs to be
-               % {\code {{\tt \backslashcurfont }acronym}
+               % {\code {{\backslashcurfont }acronym}
     \shipout\vbox{%
       % Do this early so pdf references go to the beginning of the page.
       \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
 
 \newinsert\margin \dimen\margin=\maxdimen
 
-\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+% Main part of page, including any footnotes
+\def\pagebody#1{\vbox to\txipageheight{\boxmaxdepth=\maxdepth #1}}
 {\catcode`\@ =11
 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
 % marginal hacks, juha@viisa.uucp (Juha Takala)
 \def\nsbot{\vbox
   {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
 
+
+% Argument parsing
+
 % Parse an argument, then pass it to #1.  The argument is the rest of
 % the input line (except we remove a trailing comment).  #1 should be a
 % macro which expects an ordinary undelimited TeX argument.
+% For example, \def\foo{\parsearg\fooxxx}.
 %
 \def\parsearg{\parseargusing{}}
 \def\parseargusing#1#2{%
   }%
 }
 
-% First remove any @comment, then any @c comment.
+% First remove any @comment, then any @c comment.  Also remove a @texinfoc
+% comment (see \scanmacro for details).  Pass the result on to \argcheckspaces.
 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
-\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
+\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
 
 % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
 %
 %
 \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
 
+
+% \parseargdef - define a command taking an argument on the line
+%
 % \parseargdef\foo{...}
 %      is roughly equivalent to
 % \def\foo{\parsearg\Xfoo}
 % \def\Xfoo#1{...}
-%
-% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
-% favourite TeX trick.  --kasal, 16nov03
-
 \def\parseargdef#1{%
   \expandafter \doparseargdef \csname\string#1\endcsname #1%
 }
     \endgraf % Not \par, as it may have been set to \lisppar.
     \global\dimen1 = \prevdepth
   \egroup           % End the \vtop.
+  \addgroupbox
+  \prevdepth = \dimen1
+  \checkinserts
+}
+
+\def\addgroupbox{
   % \dimen0 is the vertical size of the group's box.
   \dimen0 = \ht\groupbox  \advance\dimen0 by \dp\groupbox
   % \dimen2 is how much space is left on the page (more or less).
-  \dimen2 = \pageheight   \advance\dimen2 by -\pagetotal
+  \dimen2 = \txipageheight   \advance\dimen2 by -\pagetotal
   % if the group doesn't fit on the current page, and it's a big big
   % group, force a page break.
   \ifdim \dimen0 > \dimen2
-    \ifdim \pagetotal < \vfilllimit\pageheight
+    \ifdim \pagetotal < \vfilllimit\txipageheight
       \page
     \fi
   \fi
   \box\groupbox
-  \prevdepth = \dimen1
-  \checkinserts
 }
+
 %
 % TeX puts in an \escapechar (i.e., `@') at the beginning of the help
 % message, so this ends up printing `@group can only ...'.
@@ -931,12 +981,20 @@ where each line of input produces a line of output.}
 % @c is the same as @comment
 % @ignore ... @end ignore  is another way to write a comment
 %
-\def\comment{\begingroup \catcode`\^^M=\other%
+\def\comment{\begingroup \catcode`\^^M=\active%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other\commentxxx}%
+
+{\catcode`\^^M=\active%
+\gdef\commentxxx#1^^M{\endgroup%
+\futurelet\nexttoken\commentxxxx}%
+\gdef\commentxxxx{\ifx\nexttoken\aftermacro\expandafter\comment\fi}%
+}
+
+\def\c{\begingroup \catcode`\^^M=\active%
 \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
-\commentxxx}
-{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
-%
-\let\c=\comment
+\cxxx}
+{\catcode`\^^M=\active \gdef\cxxx#1^^M{\endgroup}}
+% See comment in \scanmacro about why the definitions of @c and @comment differ
 
 % @paragraphindent NCHARS
 % We'll use ems for NCHARS, close enough.
@@ -1007,69 +1065,23 @@ where each line of input produces a line of output.}
 % paragraph.
 %
 \gdef\dosuppressfirstparagraphindent{%
-  \gdef\indent{%
-    \restorefirstparagraphindent
-    \indent
-  }%
-  \gdef\noindent{%
-    \restorefirstparagraphindent
-    \noindent
-  }%
-  \global\everypar = {%
-    \kern -\parindent
-    \restorefirstparagraphindent
-  }%
+  \gdef\indent  {\restorefirstparagraphindent \indent}%
+  \gdef\noindent{\restorefirstparagraphindent \noindent}%
+  \global\everypar = {\kern -\parindent \restorefirstparagraphindent}%
 }
-
+%
 \gdef\restorefirstparagraphindent{%
-  \global \let \indent = \ptexindent
-  \global \let \noindent = \ptexnoindent
-  \global \everypar = {}%
+  \global\let\indent = \ptexindent
+  \global\let\noindent = \ptexnoindent
+  \global\everypar = {}%
 }
 
 
 % @refill is a no-op.
 \let\refill=\relax
 
-% If working on a large document in chapters, it is convenient to
-% be able to disable indexing, cross-referencing, and contents, for test runs.
-% This is done with @novalidate (before @setfilename).
-%
-\newif\iflinks \linkstrue % by default we want the aux files.
-\let\novalidate = \linksfalse
-
-% @setfilename is done at the beginning of every texinfo file.
-% So open here the files we need to have open while reading the input.
-% This makes it possible to make a .fmt file for texinfo.
-\def\setfilename{%
-   \fixbackslash  % Turn off hack to swallow `\input texinfo'.
-   \iflinks
-     \tryauxfile
-     % Open the new aux file.  TeX will close it automatically at exit.
-     \immediate\openout\auxfile=\jobname.aux
-   \fi % \openindices needs to do some work in any case.
-   \openindices
-   \let\setfilename=\comment % Ignore extra @setfilename cmds.
-   %
-   % If texinfo.cnf is present on the system, read it.
-   % Useful for site-wide @afourpaper, etc.
-   \openin 1 texinfo.cnf
-   \ifeof 1 \else \input texinfo.cnf \fi
-   \closein 1
-   %
-   \comment % Ignore the actual filename.
-}
-
-% Called from \setfilename.
-%
-\def\openindices{%
-  \newindex{cp}%
-  \newcodeindex{fn}%
-  \newcodeindex{vr}%
-  \newcodeindex{tp}%
-  \newcodeindex{ky}%
-  \newcodeindex{pg}%
-}
+% @setfilename INFO-FILENAME - ignored
+\let\setfilename=\comment
 
 % @bye.
 \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
@@ -1087,10 +1099,74 @@ where each line of input produces a line of output.}
 \newtoks\toksC
 \newtoks\toksD
 \newbox\boxA
+\newbox\boxB
 \newcount\countA
 \newif\ifpdf
 \newif\ifpdfmakepagedest
 
+%
+% For LuaTeX
+%
+
+\newif\iftxiuseunicodedestname
+\txiuseunicodedestnamefalse % For pdfTeX etc.
+
+\ifx\luatexversion\thisisundefined
+\else
+  % Use Unicode destination names
+  \txiuseunicodedestnametrue
+  % Escape PDF strings UTF-8 to UTF-16
+  \begingroup
+    \catcode`\%=12
+    \directlua{
+      function UTF16oct(str)
+        tex.sprint(string.char(0x5c) .. '376' .. string.char(0x5c) .. '377')
+        for c in string.utfvalues(str) do
+          if c < 0x10000 then
+            tex.sprint(
+              string.format(string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o',
+                            (c / 256), (c % 256)))
+          else
+            c = c - 0x10000
+            local c_hi = c / 1024 + 0xd800
+            local c_lo = c % 1024 + 0xdc00
+            tex.sprint(
+              string.format(string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o' ..
+                            string.char(0x5c) .. string.char(0x25) .. '03o',
+                            (c_hi / 256), (c_hi % 256),
+                            (c_lo / 256), (c_lo % 256)))
+          end
+        end
+      end
+    }
+  \endgroup
+  \def\pdfescapestring#1{\directlua{UTF16oct('\luaescapestring{#1}')}}
+  \ifnum\luatexversion>84
+    % For LuaTeX >= 0.85
+    \def\pdfdest{\pdfextension dest}
+    \let\pdfoutput\outputmode
+    \def\pdfliteral{\pdfextension literal}
+    \def\pdfcatalog{\pdfextension catalog}
+    \def\pdftexversion{\numexpr\pdffeedback version\relax}
+    \let\pdfximage\saveimageresource
+    \let\pdfrefximage\useimageresource
+    \let\pdflastximage\lastsavedimageresourceindex
+    \def\pdfendlink{\pdfextension endlink\relax}
+    \def\pdfoutline{\pdfextension outline}
+    \def\pdfstartlink{\pdfextension startlink}
+    \def\pdffontattr{\pdfextension fontattr}
+    \def\pdfobj{\pdfextension obj}
+    \def\pdflastobj{\numexpr\pdffeedback lastobj\relax}
+    \let\pdfpagewidth\pagewidth
+    \let\pdfpageheight\pageheight
+    \edef\pdfhorigin{\pdfvariable horigin}
+    \edef\pdfvorigin{\pdfvariable vorigin}
+  \fi
+\fi
+
 % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
 % can be set).  So we test for \relax and 0 as well as being undefined.
 \ifx\pdfoutput\thisisundefined
@@ -1121,6 +1197,7 @@ where each line of input produces a line of output.}
   \ifx\pdfescapestring\thisisundefined
     % No primitive available; should we give a warning or log?
     % Many times it won't matter.
+    \xdef#1{#1}%
   \else
     % The expandable \pdfescapestring primitive escapes parentheses,
     % backslashes, and other special chars.
@@ -1135,15 +1212,17 @@ output) for that.)}
 
 \ifpdf
   %
-  % Color manipulation macros based on pdfcolor.tex,
+  % Color manipulation macros using ideas from pdfcolor.tex,
   % except using rgb instead of cmyk; the latter is said to render as a
   % very dark gray on-screen and a very dark halftone in print, instead
-  % of actual black.
+  % of actual black. The dark red here is dark enough to print on paper as
+  % nearly black, but still distinguishable for online viewing.  We use
+  % black by default, though.
   \def\rgbDarkRed{0.50 0.09 0.12}
   \def\rgbBlack{0 0 0}
   %
-  % k sets the color for filling (usual text, etc.);
-  % K sets the color for stroking (thin rules, e.g., normal _'s).
+  % rg sets the color for filling (usual text, etc.);
+  % RG sets the color for stroking (thin rules, e.g., normal _'s).
   \def\pdfsetcolor#1{\pdfliteral{#1 rg  #1 RG}}
   %
   % Set color, and create a mark which defines \thiscolor accordingly,
@@ -1238,8 +1317,24 @@ output) for that.)}
     % We have to set dummies so commands such as @code, and characters
     % such as \, aren't expanded when present in a section title.
     \indexnofonts
-    \turnoffactive
     \makevalueexpandable
+    \turnoffactive
+    \iftxiuseunicodedestname
+      \ifx \declaredencoding \latone
+        % Pass through Latin-1 characters.
+        % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode.
+      \else
+        \ifx \declaredencoding \utfeight
+          % Pass through Unicode characters.
+        \else
+          % Use ASCII approximations in destination names.
+          \passthroughcharsfalse
+        \fi
+      \fi
+    \else
+      % Use ASCII approximations in destination names.
+      \passthroughcharsfalse
+    \fi
     \def\pdfdestname{#1}%
     \txiescapepdf\pdfdestname
     \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
@@ -1248,10 +1343,9 @@ output) for that.)}
   % used to mark target names; must be expandable.
   \def\pdfmkpgn#1{#1}
   %
-  % by default, use a color that is dark enough to print on paper as
-  % nearly black, but still distinguishable for online viewing.
-  \def\urlcolor{\rgbDarkRed}
-  \def\linkcolor{\rgbDarkRed}
+  % by default, use black for everything.
+  \def\urlcolor{\rgbBlack}
+  \def\linkcolor{\rgbBlack}
   \def\endlink{\setcolor{\maincolor}\pdfendlink}
   %
   % Adding outlines to PDF; macros for calculating structure of outlines
@@ -1273,18 +1367,68 @@ output) for that.)}
     % page number.  We could generate a destination for the section
     % text in the case where a section has no node, but it doesn't
     % seem worth the trouble, since most documents are normally structured.
-    \edef\pdfoutlinedest{#3}%
-    \ifx\pdfoutlinedest\empty
-      \def\pdfoutlinedest{#4}%
-    \else
-      \txiescapepdf\pdfoutlinedest
-    \fi
-    %
-    % Also escape PDF chars in the display string.
-    \edef\pdfoutlinetext{#1}%
-    \txiescapepdf\pdfoutlinetext
-    %
-    \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+    {
+      \turnoffactive
+      \ifx \declaredencoding \latone
+        % The PDF format can use an extended form of Latin-1 in bookmark
+        % strings.  See Appendix D of the PDF Reference, Sixth Edition, for
+        % the "PDFDocEncoding".
+        \passthroughcharstrue
+        % Pass through Latin-1 characters.
+        %   LuaTeX: Convert to Unicode
+        %   pdfTeX: Use Latin-1 as PDFDocEncoding
+        \edef\pdfoutlinetext{#1}%
+        \iftxiuseunicodedestname
+          % Pass through Latin-1 characters.
+          % LuaTeX with byte wise I/O converts Latin-1 characters to Unicode.
+          \edef\pdfoutlinedest{#3}%
+        \else
+          % Use ASCII approximations in destination names.
+          \passthroughcharsfalse
+          \edef\pdfoutlinedest{#3}% 
+        \fi
+      \else
+        \ifx \declaredencoding \utfeight
+          \ifx\luatexversion\thisisundefined
+            % For pdfTeX  with UTF-8.
+            % TODO: the PDF format can use UTF-16 in bookmark strings,
+            % but the code for this isn't done yet.
+            % Use ASCII approximations.
+            \passthroughcharsfalse
+            \edef\pdfoutlinetext{#1}%
+            \edef\pdfoutlinedest{#3}% 
+          \else
+            % For LuaTeX with UTF-8.
+            % Pass through Unicode characters for title texts.
+            \passthroughcharstrue
+            \edef\pdfoutlinetext{#1}%
+            \iftxiuseunicodedestname
+              % Pass through Unicode characters for destination names.
+              \edef\pdfoutlinedest{#3}%
+            \else
+              % Use ASCII approximations in destination names.
+              \passthroughcharsfalse
+              \edef\pdfoutlinedest{#3}% 
+            \fi
+          \fi
+        \else
+          % For non-Latin-1 or non-UTF-8 encodings.
+          % Use ASCII approximations.
+          \passthroughcharsfalse
+          \edef\pdfoutlinetext{#1}%
+          \edef\pdfoutlinedest{#3}% 
+        \fi
+      \fi
+      %
+      \ifx\pdfoutlinedest\empty
+        \def\pdfoutlinedest{#4}%
+      \else
+        \txiescapepdf\pdfoutlinedest
+      \fi
+      \txiescapepdf\pdfoutlinetext
+      %
+      \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+    }
   }
   %
   \def\pdfmakeoutlines{%
@@ -1439,6 +1583,289 @@ output) for that.)}
   \let\pdfmakeoutlines = \relax
 \fi  % \ifx\pdfoutput
 
+%
+% For XeTeX
+%
+\ifx\XeTeXrevision\thisisundefined
+\else
+  %
+  % XeTeX version check
+  %
+  \ifnum\strcmp{\the\XeTeXversion\XeTeXrevision}{0.99996}>-1
+    % TeX Live 2016 contains XeTeX 0.99996 and xdvipdfmx 20160307.
+    % It can use the `dvipdfmx:config' special (from TeX Live SVN r40941).
+    % For avoiding PDF destination name replacement, we use this special
+    % instead of xdvipdfmx's command line option `-C 0x0010'.
+    \special{dvipdfmx:config C 0x0010}
+    % XeTeX 0.99995+ comes with xdvipdfmx 20160307+.
+    % It can handle Unicode destination names for PDF.
+    \txiuseunicodedestnametrue
+  \else
+    % XeTeX < 0.99996 (TeX Live < 2016) cannot use the
+    % `dvipdfmx:config' special.
+    % So for avoiding PDF destination name replacement,
+    % xdvipdfmx's command line option `-C 0x0010' is necessary.
+    %
+    % XeTeX < 0.99995 can not handle Unicode destination names for PDF
+    % because xdvipdfmx 20150315 has a UTF-16 conversion issue.
+    % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
+    \txiuseunicodedestnamefalse
+  \fi
+  %
+  % Color support
+  %
+  \def\rgbDarkRed{0.50 0.09 0.12}
+  \def\rgbBlack{0 0 0}
+  %
+  \def\pdfsetcolor#1{\special{pdf:scolor [#1]}}
+  %
+  % Set color, and create a mark which defines \thiscolor accordingly,
+  % so that \makeheadline knows which color to restore.
+  \def\setcolor#1{%
+    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \domark
+    \pdfsetcolor{#1}%
+  }
+  %
+  \def\maincolor{\rgbBlack}
+  \pdfsetcolor{\maincolor}
+  \edef\thiscolor{\maincolor}
+  \def\lastcolordefs{}
+  %
+  \def\makefootline{%
+    \baselineskip24pt
+    \line{\pdfsetcolor{\maincolor}\the\footline}%
+  }
+  %
+  \def\makeheadline{%
+    \vbox to 0pt{%
+      \vskip-22.5pt
+      \line{%
+        \vbox to8.5pt{}%
+        % Extract \thiscolor definition from the marks.
+        \getcolormarks
+        % Typeset the headline with \maincolor, then restore the color.
+        \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+      }%
+      \vss
+    }%
+    \nointerlineskip
+  }
+  %
+  % PDF outline support
+  %
+  % Emulate pdfTeX primitive
+  \def\pdfdest name#1 xyz{%
+    \special{pdf:dest (#1) [@thispage /XYZ @xpos @ypos null]}%
+  }
+  \def\pdfmkdest#1{{%
+    % We have to set dummies so commands such as @code, and characters
+    % such as \, aren't expanded when present in a section title.
+    \indexnofonts
+    \makevalueexpandable
+    \turnoffactive
+    \iftxiuseunicodedestname
+      % Pass through Unicode characters.
+    \else
+      % Use ASCII approximations in destination names.
+      \passthroughcharsfalse
+    \fi
+    \def\pdfdestname{#1}%
+    \txiescapepdf\pdfdestname
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
+  %
+  % by default, use black for everything.
+  \def\urlcolor{\rgbBlack}
+  \def\linkcolor{\rgbBlack}
+  \def\endlink{\setcolor{\maincolor}\pdfendlink}
+  %
+  \def\dopdfoutline#1#2#3#4{{%
+    \turnoffactive
+    % Always use Unicode characters in title texts.
+    \def\pdfoutlinetext{#1}%
+    \txiescapepdf\pdfoutlinetext
+    \iftxiuseunicodedestname
+      % Pass through Unicode characters.
+    \else
+      % Use ASCII approximations in destination names.
+      \passthroughcharsfalse
+    \fi
+    \def\pdfoutlinedest{#3}%
+    \ifx\pdfoutlinedest\empty
+      \def\pdfoutlinedest{#4}%
+    \fi
+    \txiescapepdf\pdfoutlinedest
+    %
+    \special{pdf:out [-] #2 << /Title (\pdfoutlinetext) /A
+      << /S /GoTo /D (\pdfoutlinedest) >> >> }%
+  }}
+  %
+  \def\pdfmakeoutlines{%
+    \begingroup
+      %
+      % For XeTeX, counts of subentries are not necessary.
+      % Therefore, we read toc only once.
+      %
+      % We use node names as destinations.
+      \def\partentry##1##2##3##4{}% ignore parts in the outlines
+      \def\numchapentry##1##2##3##4{%
+        \dopdfoutline{##1}{1}{##3}{##4}}%
+      \def\numsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{2}{##3}{##4}}%
+      \def\numsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{3}{##3}{##4}}%
+      \def\numsubsubsecentry##1##2##3##4{%
+        \dopdfoutline{##1}{4}{##3}{##4}}%
+      %
+      \let\appentry\numchapentry%
+      \let\appsecentry\numsecentry%
+      \let\appsubsecentry\numsubsecentry%
+      \let\appsubsubsecentry\numsubsubsecentry%
+      \let\unnchapentry\numchapentry%
+      \let\unnsecentry\numsecentry%
+      \let\unnsubsecentry\numsubsecentry%
+      \let\unnsubsubsecentry\numsubsubsecentry%
+      %
+      % For XeTeX, xdvipdfmx converts strings to UTF-16.
+      % Therefore, the encoding and the language may not be considered.
+      %
+      \indexnofonts
+      \setupdatafile
+      % We can have normal brace characters in the PDF outlines, unlike
+      % Texinfo index files.  So set that up.
+      \def\{{\lbracecharliteral}%
+      \def\}{\rbracecharliteral}%
+      \catcode`\\=\active \otherbackslash
+      \input \tocreadfilename
+    \endgroup
+  }
+  {\catcode`[=1 \catcode`]=2
+   \catcode`{=\other \catcode`}=\other
+   \gdef\lbracecharliteral[{]%
+   \gdef\rbracecharliteral[}]%
+  ]
+
+  \special{pdf:docview << /PageMode /UseOutlines >> }
+  % ``\special{pdf:tounicode ...}'' is not necessary
+  % because xdvipdfmx converts strings from UTF-8 to UTF-16 without it.
+  % However, due to a UTF-16 conversion issue of xdvipdfmx 20150315,
+  % ``\special{pdf:dest ...}'' cannot handle non-ASCII strings.
+  % It is fixed by xdvipdfmx 20160106 (TeX Live SVN r39753).
+%
+  \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+    \ifx\PP\D\let\nextsp\relax
+    \else\let\nextsp\skipspaces
+      \addtokens{\filename}{\PP}%
+      \advance\filenamelength by 1
+    \fi
+    \nextsp}
+  \def\getfilename#1{%
+    \filenamelength=0
+    % If we don't expand the argument now, \skipspaces will get
+    % snagged on things like "@value{foo}".
+    \edef\temp{#1}%
+    \expandafter\skipspaces\temp|\relax
+  }
+  % make a live url in pdf output.
+  \def\pdfurl#1{%
+    \begingroup
+      % it seems we really need yet another set of dummies; have not
+      % tried to figure out what each command should do in the context
+      % of @url.  for now, just make @/ a no-op, that's the only one
+      % people have actually reported a problem with.
+      %
+      \normalturnoffactive
+      \def\@{@}%
+      \let\/=\empty
+      \makevalueexpandable
+      % do we want to go so far as to use \indexnofonts instead of just
+      % special-casing \var here?
+      \def\var##1{##1}%
+      %
+      \leavevmode\setcolor{\urlcolor}%
+      \special{pdf:bann << /Border [0 0 0]
+        /Subtype /Link /A << /S /URI /URI (#1) >> >>}%
+    \endgroup}
+  \def\endlink{\setcolor{\maincolor}\special{pdf:eann}}
+  \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+  \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+  \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+  \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+  \def\maketoks{%
+    \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+    \ifx\first0\adn0
+    \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+    \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+    \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+    \else
+      \ifnum0=\countA\else\makelink\fi
+      \ifx\first.\let\next=\done\else
+        \let\next=\maketoks
+        \addtokens{\toksB}{\the\toksD}
+        \ifx\first,\addtokens{\toksB}{\space}\fi
+      \fi
+    \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+    \next}
+  \def\makelink{\addtokens{\toksB}%
+    {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+  \def\pdflink#1{%
+    \special{pdf:bann << /Border [0 0 0]
+      /Type /Annot /Subtype /Link /A << /S /GoTo /D (#1) >> >>}%
+    \setcolor{\linkcolor}#1\endlink}
+  \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+%
+  %
+  % @image support
+  %
+  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
+  \def\doxeteximage#1#2#3{%
+    \def\xeteximagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\xeteximageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % XeTeX (and the PDF format) supports .pdf, .png, .jpg (among
+    % others).  Let's try in that order, PDF first since if
+    % someone has a scalable image, presumably better to use that than a
+    % bitmap.
+    \let\xeteximgext=\empty
+    \begingroup
+      \openin 1 #1.pdf \ifeof 1
+        \openin 1 #1.PDF \ifeof 1
+          \openin 1 #1.png \ifeof 1
+            \openin 1 #1.jpg \ifeof 1
+              \openin 1 #1.jpeg \ifeof 1
+                \openin 1 #1.JPG \ifeof 1
+                  \errmessage{Could not find image file #1 for XeTeX}%
+                \else \gdef\xeteximgext{JPG}%
+                \fi
+              \else \gdef\xeteximgext{jpeg}%
+              \fi
+            \else \gdef\xeteximgext{jpg}%
+            \fi
+          \else \gdef\xeteximgext{png}%
+          \fi
+        \else \gdef\xeteximgext{PDF}%
+        \fi
+      \else \gdef\xeteximgext{pdf}%
+      \fi
+      \closein 1
+    \endgroup
+    %
+    \def\xetexpdfext{pdf}%
+    \ifx\xeteximgext\xetexpdfext
+      \XeTeXpdffile "#1".\xeteximgext ""
+    \else
+      \def\xetexpdfext{PDF}%
+      \ifx\xeteximgext\xetexpdfext
+        \XeTeXpdffile "#1".\xeteximgext ""
+      \else
+        \XeTeXpicfile "#1".\xeteximgext ""
+      \fi
+    \fi
+    \ifdim \wd0 >0pt width \xeteximagewidth \fi
+    \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
+  }
+\fi
 
 \message{fonts,}
 
@@ -1822,8 +2249,10 @@ end
 % A few fonts for @defun names and args.
 \setfont\defbf\bfshape{10}{\magstep1}{OT1}
 \setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defsl\slshape{10}{\magstep1}{OT1TT}
 \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf
+\let\tenttsl=\defttsl \let\tensl=\defsl \bf}
 
 % Fonts for indices, footnotes, small examples (9pt).
 \def\smallnominalsize{9pt}
@@ -1884,6 +2313,7 @@ end
 % Section fonts (14.4pt).
 \def\secnominalsize{14pt}
 \setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secrmnotbold\rmshape{12}{\magstep1}{OT1}
 \setfont\secit\itbshape{10}{\magstep2}{OT1IT}
 \setfont\secsl\slbshape{10}{\magstep2}{OT1}
 \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
@@ -1953,8 +2383,10 @@ end
 % A few fonts for @defun names and args.
 \setfont\defbf\bfshape{10}{\magstephalf}{OT1}
 \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defsl\slshape{10}{\magstephalf}{OT1TT}
 \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf
+\let\tensl=\defsl \let\tenttsl=\defttsl \bf}
 
 % Fonts for indices, footnotes, small examples (9pt).
 \def\smallnominalsize{9pt}
@@ -2086,12 +2518,9 @@ end
  \endgroup
 }
 
-
 % In order for the font changes to affect most math symbols and letters,
-% we have to define the \textfont of the standard families.  Since
-% texinfo doesn't allow for producing subscripts and superscripts except
-% in the main text, we don't bother to reset \scriptfont and
-% \scriptscriptfont (which would also require loading a lot more fonts).
+% we have to define the \textfont of the standard families.  We don't
+% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
 %
 \def\resetmathfonts{%
   \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
@@ -2105,8 +2534,8 @@ end
 % \tenSTYLE to set the current font.
 %
 % Each font-changing command also sets the names \lsize (one size lower)
-% and \lllsize (three sizes lower).  These relative commands are used in
-% the LaTeX logo and acronyms.
+% and \lllsize (three sizes lower).  These relative commands are used
+% in, e.g., the LaTeX logo and acronyms.
 %
 % This all needs generalizing, badly.
 %
@@ -2142,7 +2571,7 @@ end
   \let\tenttsl=\secttsl
   \def\curfontsize{sec}%
   \def\lsize{subsec}\def\lllsize{reduced}%
-  \resetmathfonts \setleading{16pt}}
+  \resetmathfonts \setleading{17pt}}
 \def\subsecfonts{%
   \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
   \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
@@ -2377,8 +2806,10 @@ end
   \ifx\next,%
   \else\ifx\next-%
   \else\ifx\next.%
+  \else\ifx\next\.%
+  \else\ifx\next\comma%
   \else\ptexslash
-  \fi\fi\fi
+  \fi\fi\fi\fi\fi
   \aftersmartic
 }
 
@@ -2426,8 +2857,8 @@ end
 %
 \catcode`@=11
   \def\plainfrenchspacing{%
-    \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
-    \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+    \sfcode`\.=\@m \sfcode`\?=\@m \sfcode`\!=\@m
+    \sfcode`\:=\@m \sfcode`\;=\@m \sfcode`\,=\@m
     \def\endofsentencespacefactor{1000}% for @. and friends
   }
   \def\plainnonfrenchspacing{%
@@ -2475,14 +2906,14 @@ end
 }
 
 % We *must* turn on hyphenation at `-' and `_' in @code.
+% (But see \codedashfinish below.)
 % Otherwise, it is too hard to avoid overfull hboxes
 % in the Emacs manual, the Library manual, etc.
 %
 % 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.
+% and arrange explicitly to hyphenate at a dash. -- rms.
 {
   \catcode`\-=\active \catcode`\_=\active
   \catcode`\'=\active \catcode`\`=\active
@@ -2499,14 +2930,35 @@ end
      \let-\normaldash
      \let_\realunder
     \fi
-    \codex
+    % Given -foo (with a single dash), we do not want to allow a break
+    % after the hyphen.
+    \global\let\codedashprev=\codedash
+    %
+    \codex
+  }
+  %
+  \gdef\codedash{\futurelet\next\codedashfinish}
+  \gdef\codedashfinish{%
+    \normaldash % always output the dash character itself.
+    % 
+    % Now, output a discretionary to allow a line break, unless
+    % (a) the next character is a -, or
+    % (b) the preceding character is a -.
+    % 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 
+      \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
   }
 }
-
+\def\normaldash{-}
+%
 \def\codex #1{\tclose{#1}\endgroup}
 
-\def\normaldash{-}
-\def\codedash{-\discretionary{}{}{}}
 \def\codeunder{%
   % this is all so @math{@code{var_name}+1} can work.  In math mode, _
   % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
@@ -2548,37 +3000,21 @@ end
 \let\file=\code
 \let\option=\code
 
-% @uref (abbreviation for `urlref') takes an optional (comma-separated)
-% second argument specifying the text to display and an optional third
-% arg as text to display instead of (rather than in addition to) the url
-% itself.  First (mandatory) arg is the url.
-% (This \urefnobreak definition isn't used now, leaving it for a while
-% for comparison.)
-\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
-\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
-  \unsepspaces
-  \pdfurl{#1}%
-  \setbox0 = \hbox{\ignorespaces #3}%
-  \ifdim\wd0 > 0pt
-    \unhbox0 % third arg given, show only that
-  \else
-    \setbox0 = \hbox{\ignorespaces #2}%
-    \ifdim\wd0 > 0pt
-      \ifpdf
-        \unhbox0             % PDF: 2nd arg given, show only it
-      \else
-        \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
-      \fi
-    \else
-      \code{#1}% only url given, so show it
-    \fi
-  \fi
-  \endlink
-\endgroup}
+% @uref (abbreviation for `urlref') aka @url takes an optional
+% (comma-separated) second argument specifying the text to display and
+% an optional third arg as text to display instead of (rather than in
+% addition to) the url itself.  First (mandatory) arg is the url.
 
-% This \urefbreak definition is the active one.
+% TeX-only option to allow changing PDF output to show only the second
+% arg (if given), and not the url (which is then just the link target).
+\newif\ifurefurlonlylink
+
+% The main macro is \urefbreak, which allows breaking at expected
+% places within the url.  (There used to be another version, which
+% didn't support automatic breaking.)
 \def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
 \let\uref=\urefbreak
+%
 \def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
 \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
   \unsepspaces
@@ -2587,12 +3023,32 @@ end
   \ifdim\wd0 > 0pt
     \unhbox0 % third arg given, show only that
   \else
-    \setbox0 = \hbox{\ignorespaces #2}%
+    \setbox0 = \hbox{\ignorespaces #2}% look for second arg
     \ifdim\wd0 > 0pt
       \ifpdf
-        \unhbox0             % PDF: 2nd arg given, show only it
+        % For pdfTeX and LuaTeX
+        \ifurefurlonlylink
+          % PDF plus option to not display url, show just arg
+          \unhbox0             
+        \else
+          % PDF, normally display both arg and url for consistency,
+          % visibility, if the pdf is eventually used to print, etc.
+          \unhbox0\ (\urefcode{#1})%
+        \fi
       \else
-        \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+        \ifx\XeTeXrevision\thisisundefined
+          \unhbox0\ (\urefcode{#1})% DVI, always show arg and url
+        \else
+          % For XeTeX
+          \ifurefurlonlylink
+            % PDF plus option to not display url, show just arg
+            \unhbox0             
+          \else
+            % PDF, normally display both arg and url for consistency,
+            % visibility, if the pdf is eventually used to print, etc.
+            \unhbox0\ (\urefcode{#1})%
+          \fi
+        \fi
       \fi
     \else
       \urefcode{#1}% only url given, so show it
@@ -2603,9 +3059,9 @@ end
 
 % Allow line breaks around only a few characters (only).
 \def\urefcatcodes{%
-  \catcode\ampChar=\active   \catcode\dotChar=\active
-  \catcode\hashChar=\active  \catcode\questChar=\active
-  \catcode\slashChar=\active
+  \catcode`\&=\active \catcode`\.=\active
+  \catcode`\#=\active \catcode`\?=\active
+  \catcode`\/=\active
 }
 {
   \urefcatcodes
@@ -2632,8 +3088,10 @@ end
 % we put a little stretch before and after the breakable chars, to help
 % line breaking of long url's.  The unequal skips make look better in
 % cmtt at least, especially for dots.
-\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
-\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+\def\urefprestretchamount{.13em}
+\def\urefpoststretchamount{.1em}
+\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
 %
 \def\urefcodeamp{\urefprestretch \&\urefpoststretch}
 \def\urefcodedot{\urefprestretch .\urefpoststretch}
@@ -2691,7 +3149,18 @@ end
     \endlink
   \endgroup}
 \else
-  \let\email=\uref
+  \ifx\XeTeXrevision\thisisundefined
+    \let\email=\uref
+  \else
+    \def\email#1{\doemail#1,,\finish}
+    \def\doemail#1,#2,#3\finish{\begingroup
+      \unsepspaces
+      \pdfurl{mailto:#1}%
+      \setbox0 = \hbox{\ignorespaces #2}%
+      \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+      \endlink
+    \endgroup}
+  \fi
 \fi
 
 % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
@@ -2760,11 +3229,6 @@ end
 %
 \def\dmn#1{\thinspace #1}
 
-% @l was never documented to mean ``switch to the Lisp font'',
-% and it is not used as such in any manual I can find.  We need it for
-% Polish suppressed-l.  --karl, 22sep96.
-%\def\l#1{{\li #1}\null}
-
 % @acronym for "FBI", "NATO", and the like.
 % We print this one point size smaller, since it's intended for
 % all-uppercase.
@@ -2817,21 +3281,24 @@ end
 \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
 %
 \def\math{%
-  \tex
-  \mathunderscore
-  \let\\ = \mathbackslash
-  \mathactive
-  % make the texinfo accent commands work in math mode
-  \let\"=\ddot
-  \let\'=\acute
-  \let\==\bar
-  \let\^=\hat
-  \let\`=\grave
-  \let\u=\breve
-  \let\v=\check
-  \let\~=\tilde
-  \let\dotaccent=\dot
-  $\finishmath
+  \ifmmode\else % only go into math if not in math mode already
+    \tex
+    \mathunderscore
+    \let\\ = \mathbackslash
+    \mathactive
+    % make the texinfo accent commands work in math mode
+    \let\"=\ddot
+    \let\'=\acute
+    \let\==\bar
+    \let\^=\hat
+    \let\`=\grave
+    \let\u=\breve
+    \let\v=\check
+    \let\~=\tilde
+    \let\dotaccent=\dot
+    % have to provide another name for sup operator
+    \let\mathopsup=\sup
+  $\expandafter\finishmath\fi
 }
 \def\finishmath#1{#1$\endgroup}  % Close the group opened by \tex.
 
@@ -2854,8 +3321,17 @@ end
   }
 }
 
-% ctrl is no longer a Texinfo command, but leave this definition for fun.
-\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+% for @sub and @sup, if in math mode, just do a normal sub/superscript.
+% If in text, use math to place as sub/superscript, but switch
+% into text mode, with smaller fonts.  This is a different font than the
+% one used for real math sub/superscripts (8pt vs. 7pt), but let's not
+% fix it (significant additions to font machinery) until someone notices.
+%
+\def\sub{\ifmmode \expandafter\sb \else \expandafter\finishsub\fi}
+\def\finishsub#1{$\sb{\hbox{\selectfonts\lllsize #1}}$}%
+%
+\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi}
+\def\finishsup#1{$\ptexsp{\hbox{\selectfonts\lllsize #1}}$}%
 
 % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
 % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
@@ -2868,6 +3344,15 @@ end
   \def\inlinefmtname{#1}%
   \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
 }
+% 
+% @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
+% FMTNAME is tex, else ELSE-TEXT.
+\long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
+\long\def\doinlinefmtifelse#1,#2,#3,#4,\finish{%
+  \def\inlinefmtname{#1}%
+  \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\else \ignorespaces #3\fi
+}
+%
 % For raw, must switch into @tex before parsing the argument, to avoid
 % setting catcodes prematurely.  Doing it this way means that, for
 % example, @inlineraw{html, foo{bar} gets a parse error instead of being
@@ -2884,6 +3369,23 @@ end
   \endgroup % close group opened by \tex.
 }
 
+% @inlineifset{VAR, TEXT} expands TEXT if VAR is @set.
+%
+\long\def\inlineifset#1{\doinlineifset #1,\finish}
+\long\def\doinlineifset#1,#2,\finish{%
+  \def\inlinevarname{#1}%
+  \expandafter\ifx\csname SET\inlinevarname\endcsname\relax
+  \else\ignorespaces#2\fi
+}
+
+% @inlineifclear{VAR, TEXT} expands TEXT if VAR is not @set.
+%
+\long\def\inlineifclear#1{\doinlineifclear #1,\finish}
+\long\def\doinlineifclear#1,#2,\finish{%
+  \def\inlinevarname{#1}%
+  \expandafter\ifx\csname SET\inlinevarname\endcsname\relax \ignorespaces#2\fi
+}
+
 
 \message{glyphs,}
 % and logos.
@@ -2893,23 +3395,10 @@ end
 \let\atchar=\@
 
 % @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
-% Unless we're in typewriter, use \ecfont because the CM text fonts do
-% not have braces, and we don't want to switch into math.
-\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
-\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
-\let\{=\mylbrace \let\lbracechar=\{
-\let\}=\myrbrace \let\rbracechar=\}
-\begingroup
-  % Definitions to produce \{ and \} commands for indices,
-  % and @{ and @} for the aux/toc files.
-  \catcode`\{ = \other \catcode`\} = \other
-  \catcode`\[ = 1 \catcode`\] = 2
-  \catcode`\! = 0 \catcode`\\ = \other
-  !gdef!lbracecmd[\{]%
-  !gdef!rbracecmd[\}]%
-  !gdef!lbraceatcmd[@{]%
-  !gdef!rbraceatcmd[@}]%
-!endgroup
+\def\lbracechar{{\ifmonospace\char123\else\ensuremath\lbrace\fi}}
+\def\rbracechar{{\ifmonospace\char125\else\ensuremath\rbrace\fi}}
+\let\{=\lbracechar
+\let\}=\rbracechar
 
 % @comma{} to avoid , parsing problems.
 \let\comma = ,
@@ -2971,11 +3460,16 @@ end
   \TeX
 }
 
-% Some math mode symbols.
-\def\bullet{$\ptexbullet$}
-\def\geq{\ifmmode \ge\else $\ge$\fi}
-\def\leq{\ifmmode \le\else $\le$\fi}
-\def\minus{\ifmmode -\else $-$\fi}
+% Some math mode symbols.  Define \ensuremath to switch into math mode
+% unless we are already there.  Expansion tricks may not be needed here,
+% but safer, and can't hurt.
+\def\ensuremath{\ifmmode \expandafter\asis \else\expandafter\ensuredmath \fi}
+\def\ensuredmath#1{$\relax#1$}
+%
+\def\bullet{\ensuremath\ptexbullet}
+\def\geq{\ensuremath\ge}
+\def\leq{\ensuremath\le}
+\def\minus{\ensuremath-}
 
 % @dots{} outputs an ellipsis using the current font.
 % We do .5em per period so that it has the same spacing in the cm
@@ -3139,8 +3633,15 @@ end
 \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E}
 \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e}
 %
-% Use the ec* fonts (cm-super in outline format) for non-CM glyphs.
-\def\ecfont{%
+% Use the European Computer Modern fonts (cm-super in outline format)
+% for non-CM glyphs.  That is ec* for regular text and tc* for the text
+% companion symbols (LaTeX TS1 encoding).  Both are part of the ec
+% package and follow the same conventions.
+% 
+\def\ecfont{\etcfont{e}}
+\def\tcfont{\etcfont{t}}
+%
+\def\etcfont#1{%
   % We can't distinguish serif/sans and italic/slanted, but this
   % is used for crude hacks anyway (like adding French and German
   % quotes to documents typeset with CM, where we lose kerning), so
@@ -3149,14 +3650,14 @@ end
   \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
   \ifmonospace
     % typewriter:
-    \font\thisecfont = ectt\ecsize \space at \nominalsize
+    \font\thisecfont = #1ctt\ecsize \space at \nominalsize
   \else
     \ifx\curfontstyle\bfstylename
       % bold:
-      \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+      \font\thisecfont = #1cb\ifusingit{i}{x}\ecsize \space at \nominalsize
     \else
       % regular:
-      \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+      \font\thisecfont = #1c\ifusingit{ti}{rm}\ecsize \space at \nominalsize
     \fi
   \fi
   \thisecfont
@@ -3200,13 +3701,16 @@ end
 \newif\ifseenauthor
 \newif\iffinishedtitlepage
 
-% Do an implicit @contents or @shortcontents after @end titlepage if the
-% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
-%
-\newif\ifsetcontentsaftertitlepage
- \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
-\newif\ifsetshortcontentsaftertitlepage
- \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+% @setcontentsaftertitlepage used to do an implicit @contents or
+% @shortcontents after @end titlepage, but it is now obsolete.
+\def\setcontentsaftertitlepage{%
+  \errmessage{@setcontentsaftertitlepage has been removed as a Texinfo
+              command; move your @contents command if you want the contents
+              after the title page.}}%
+\def\setshortcontentsaftertitlepage{%
+  \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
+              command; move your @shortcontents and @contents commands if you 
+              want the contents after the title page.}}%
 
 \parseargdef\shorttitlepage{%
   \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
@@ -3248,20 +3752,6 @@ end
   % Need this before the \...aftertitlepage checks so that if they are
   % in effect the toc pages will come out with page numbers.
   \HEADINGSon
-  %
-  % If they want short, they certainly want long too.
-  \ifsetshortcontentsaftertitlepage
-    \shortcontents
-    \contents
-    \global\let\shortcontents = \relax
-    \global\let\contents = \relax
-  \fi
-  %
-  \ifsetcontentsaftertitlepage
-    \contents
-    \global\let\contents = \relax
-    \global\let\shortcontents = \relax
-  \fi
 }
 
 \def\finishtitlepage{%
@@ -3326,7 +3816,7 @@ end
 \newtoks\evenfootline    % footline on even pages
 \newtoks\oddfootline     % footline on odd pages
 
-% Now make TeX use those variables
+% Now make \makeheadline and \makefootline in Plain TeX use those variables
 \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
                             \else \the\evenheadline \fi}}
 \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
@@ -3365,7 +3855,7 @@ end
   %
   % Leave some space for the footline.  Hopefully ok to assume
   % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -12pt
+  \global\advance\txipageheight by -12pt
   \global\advance\vsize by -12pt
 }
 
@@ -3382,13 +3872,17 @@ end
 % @everyheadingmarks
 % @everyfootingmarks
 
+% These define \getoddheadingmarks, \getevenheadingmarks,
+% \getoddfootingmarks, and \getevenfootingmarks, each to one of
+% \gettopheadingmarks, \getbottomheadingmarks.
+%
 \def\evenheadingmarks{\headingmarks{even}{heading}}
 \def\oddheadingmarks{\headingmarks{odd}{heading}}
 \def\evenfootingmarks{\headingmarks{even}{footing}}
 \def\oddfootingmarks{\headingmarks{odd}{footing}}
-\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
+\parseargdef\everyheadingmarks{\headingmarks{even}{heading}{#1}
                           \headingmarks{odd}{heading}{#1} }
-\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
+\parseargdef\everyfootingmarks{\headingmarks{even}{footing}{#1}
                           \headingmarks{odd}{footing}{#1} }
 % #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
 \def\headingmarks#1#2#3 {%
@@ -3409,7 +3903,7 @@ end
 % By default, they are off at the start of a document,
 % and turned `on' after @end titlepage.
 
-\def\headings #1 {\csname HEADINGS#1\endcsname}
+\parseargdef\headings{\csname HEADINGS#1\endcsname}
 
 \def\headingsoff{% non-global headings elimination
   \evenheadline={\hfil}\evenfootline={\hfil}%
@@ -3429,7 +3923,7 @@ end
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
 \global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
 \global\let\contentsalignmacro = \chapoddpage
 }
 \let\contentsalignmacro = \chappager
@@ -3440,8 +3934,8 @@ end
 \global\pageno=1
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenheadline={\line{\thischapterheading\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
 \global\let\contentsalignmacro = \chappager
 }
 \def\HEADINGSon{\HEADINGSdouble}
@@ -3452,7 +3946,7 @@ end
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
 \global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
 \global\let\contentsalignmacro = \chapoddpage
 }
 
@@ -3460,8 +3954,8 @@ end
 \def\HEADINGSsinglex{%
 \global\evenfootline={\hfil}
 \global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapter\hfil\folio}}
-\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenheadline={\line{\thischapterheading\hfil\folio}}
+\global\oddheadline={\line{\thischapterheading\hfil\folio}}
 \global\let\contentsalignmacro = \chappager
 }
 
@@ -3639,7 +4133,7 @@ end
   \parskip=\smallskipamount
   \ifdim\parskip=0pt \parskip=2pt \fi
   %
-  % Try typesetting the item mark that if the document erroneously says
+  % Try typesetting the item mark so that if the document erroneously says
   % something like @itemize @samp (intending @table), there's an error
   % right away at the @itemize.  It's not the best error message in the
   % world, but it's better than leaving it to the @item.  This means if
@@ -3671,7 +4165,12 @@ end
    \noindent
    \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
    %
-   \vadjust{\penalty 1200}}% not good to break after first line of item.
+   \ifinner\else
+     \vadjust{\penalty 1200}% not good to break after first line of item.
+   \fi
+   % We can be in inner vertical mode in a footnote, although an
+   % @itemize looks awful there.
+  }%
   \flushcr
 }
 
@@ -3889,19 +4388,23 @@ end
 }
 
 % multitable-only commands.
-%
-% @headitem starts a heading row, which we typeset in bold.
-% Assignments have to be global since we are inside the implicit group
-% of an alignment entry.  \everycr resets \everytab so we don't have to
+% 
+% @headitem starts a heading row, which we typeset in bold.  Assignments
+% have to be global since we are inside the implicit group of an
+% alignment entry.  \everycr below resets \everytab so we don't have to
 % undo it ourselves.
 \def\headitemfont{\b}% for people to use in the template row; not changeable
 \def\headitem{%
   \checkenv\multitable
   \crcr
+  \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
 }%
 %
+% default for tables with no headings.
+\let\headitemcrhook=\relax
+%
 % A \tab used to include \hskip1sp.  But then the space in a template
 % line is not enough.  That is bad.  So let's go back to just `&' until
 % we again encounter the problem the 1sp was intended to solve.
@@ -3932,15 +4435,15 @@ end
   %
   \everycr = {%
     \noalign{%
-      \global\everytab={}%
+      \global\everytab={}% Reset from possible headitem.
       \global\colcount=0 % Reset the column counter.
-      % Check for saved footnotes, etc.
+      %
+      % Check for saved footnotes, etc.:
       \checkinserts
-      % Keeps underfull box messages off when table breaks over pages.
-      %\filbreak
-       % Maybe so, but it also creates really weird page breaks when the
-       % table breaks over pages. Wouldn't \vfil be better?  Wait until the
-       % problem manifests itself, so it can be fixed for real --karl.
+      %
+      % Perhaps a \nobreak, then reset:
+      \headitemcrhook
+      \global\let\headitemcrhook=\relax
     }%
   }%
   %
@@ -4179,7 +4682,7 @@ end
 \def\value{\begingroup\makevalueexpandable\valuexxx}
 \def\valuexxx#1{\expandablevalue{#1}\endgroup}
 {
-  \catcode`\- = \active \catcode`\_ = \active
+  \catcode`\-=\active \catcode`\_=\active
   %
   \gdef\makevalueexpandable{%
     \let\value = \expandablevalue
@@ -4199,7 +4702,12 @@ end
 % variable's value contains other Texinfo commands, it's almost certain
 % it will fail (although perhaps we could fix that with sufficient work
 % to do a one-level expansion on the result, instead of complete).
-%
+% 
+% Unfortunately, this has the consequence that when _ is in the *value*
+% of an @set, it does not print properly in the roman fonts (get the cmr
+% dot accent at position 126 instead).  No fix comes to mind, and it's
+% been this way since 2003 or earlier, so just ignore it.
+% 
 \def\expandablevalue#1{%
   \expandafter\ifx\csname SET#1\endcsname\relax
     {[No value for ``#1'']}%
@@ -4209,10 +4717,36 @@ end
   \fi
 }
 
+% Like \expandablevalue, but completely expandable (the \message in the
+% definition above operates at the execution level of TeX).  Used when
+% writing to auxiliary files, due to the expansion that \write does.
+% If flag is undefined, pass through an unexpanded @value command: maybe it 
+% will be set by the time it is read back in.
+%
+% NB flag names containing - or _ may not work here.
+\def\dummyvalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    \noexpand\value{#1}%
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
+% Used for @value's in index entries to form the sort key: expand the @value
+% if possible, otherwise sort late.
+\def\indexnofontsvalue#1{%
+  \expandafter\ifx\csname SET#1\endcsname\relax
+    ZZZZZZZ
+  \else
+    \csname SET#1\endcsname
+  \fi
+}
+
 % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
 % with @set.
-%
-% To get special treatment of `@end ifset,' call \makeond and the redefine.
+% 
+% To get the special treatment we need for `@end ifset,' we call
+% \makecond and then redefine.
 %
 \makecond{ifset}
 \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
@@ -4283,19 +4817,16 @@ end
 % except not \outer, so it can be used within macros and \if's.
 \edef\newwrite{\makecsname{ptexnewwrite}}
 
-% \newindex {foo} defines an index named foo.
-% It automatically defines \fooindex such that
-% \fooindex ...rest of line... puts an entry in the index foo.
-% It also defines \fooindfile to be the number of the output channel for
-% the file that accumulates this index.  The file's extension is foo.
+% \newindex {foo} 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{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
-  \fi
+  \expandafter\chardef\csname#1indfile\endcsname=0
   \expandafter\xdef\csname#1index\endcsname{%     % Define @#1index
     \noexpand\doindex{#1}}
 }
@@ -4309,14 +4840,19 @@ end
 \def\defcodeindex{\parsearg\newcodeindex}
 %
 \def\newcodeindex#1{%
-  \iflinks
-    \expandafter\newwrite \csname#1indfile\endcsname
-    \openout \csname#1indfile\endcsname \jobname.#1
-  \fi
+  \expandafter\chardef\csname#1indfile\endcsname=0
   \expandafter\xdef\csname#1index\endcsname{%
     \noexpand\docodeindex{#1}}%
 }
 
+% The default indices:
+\newindex{cp}%      concepts,
+\newcodeindex{fn}%  functions,
+\newcodeindex{vr}%  variables,
+\newcodeindex{tp}%  types,
+\newcodeindex{ky}%  keys
+\newcodeindex{pg}%  and programs.
+
 
 % @synindex foo bar    makes index foo feed into index bar.
 % Do this instead of @defindex foo if you don't want it as a separate index.
@@ -4330,14 +4866,7 @@ end
 % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
 % #3 the target index (bar).
 \def\dosynindex#1#2#3{%
-  % Only do \closeout if we haven't already done it, else we'll end up
-  % closing the target index.
-  \expandafter \ifx\csname donesynindex#2\endcsname \relax
-    % The \closeout helps reduce unnecessary open files; the limit on the
-    % Acorn RISC OS is a mere 16 files.
-    \expandafter\closeout\csname#2indfile\endcsname
-    \expandafter\let\csname donesynindex#2\endcsname = 1
-  \fi
+  \requireopenindexfile{#3}%
   % redefine \fooindfile:
   \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
   \expandafter\let\csname#2indfile\endcsname=\temp
@@ -4345,108 +4874,72 @@ end
   \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
 }
 
-% Define \doindex, the driver for all \fooindex macros.
+% Define \doindex, the driver for all index macros.
 % Argument #1 is generated by the calling \fooindex macro,
-%  and it is "foo", the name of the index.
-
-% \doindex just uses \parsearg; it calls \doind for the actual work.
-% This is because \doind is more useful to call from other macros.
-
-% There is also \dosubind {index}{topic}{subtopic}
-% which makes an entry in a two-level index such as the operation index.
+% and it is the two-letter name of the index.
 
-\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
-\def\singleindexer #1{\doind{\indexname}{#1}}
+\def\doindex#1{\edef\indexname{#1}\parsearg\doindexxxx}
+\def\doindexxxx #1{\doind{\indexname}{#1}}
 
 % like the previous two, but they put @code around the argument.
-\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
-\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
+\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
 
-% Take care of Texinfo commands that can appear in an index entry.
-% Since there are some commands we want to expand, and others we don't,
-% we have to laboriously prevent expansion for those that we don't.
+\f
+% Used when writing an index entry out to an index file to prevent
+% expansion of Texinfo commands that can appear in an index entry.
 %
 \def\indexdummies{%
   \escapechar = `\\     % use backslash in output files.
-  \def\@{@}% change to @@ when we switch to @ as escape char in index files.
-  \def\ {\realbackslash\space }%
-  %
-  % Need these unexpandable (because we define \tt as a dummy)
-  % definitions when @{ or @} appear in index entry text.  Also, more
-  % complicated, when \tex is in effect and \{ is a \delimiter again.
-  % We can't use \lbracecmd and \rbracecmd because texindex assumes
-  % braces and backslashes are used only as delimiters.  Perhaps we
-  % should define @lbrace and @rbrace commands a la @comma.
-  \def\{{{\tt\char123}}%
-  \def\}{{\tt\char125}}%
-  %
-  % I don't entirely understand this, but when an index entry is
-  % generated from a macro call, the \endinput which \scanmacro inserts
-  % causes processing to be prematurely terminated.  This is,
-  % apparently, because \indexsorttmp is fully expanded, and \endinput
-  % is an expandable command.  The redefinition below makes \endinput
-  % disappear altogether for that purpose -- although logging shows that
-  % processing continues to some further point.  On the other hand, it
-  % seems \endinput does not hurt in the printed index arg, since that
-  % is still getting written without apparent harm.
-  %
-  % Sample source (mac-idx3.tex, reported by Graham Percival to
-  % help-texinfo, 22may06):
-  % @macro funindex {WORD}
-  % @findex xyz
-  % @end macro
-  % ...
-  % @funindex commtest
-  %
-  % The above is not enough to reproduce the bug, but it gives the flavor.
-  %
-  % Sample whatsit resulting:
-  % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
-  %
-  % So:
-  \let\endinput = \empty
+  \definedummyletter\@%
+  \definedummyletter\ %
+  %
+  % For texindex which always views { and } as separators.
+  \def\{{\lbracechar{}}%
+  \def\}{\rbracechar{}}%
   %
   % Do the redefinitions.
-  \commondummies
+  \definedummies
 }
 
-% For the aux and toc files, @ is the escape character.  So we want to
-% redefine everything using @ as the escape character (instead of
-% \realbackslash, still used for index files).  When everything uses @,
-% this will be simpler.
+% Used for the aux and toc files, where @ is the escape character.
 %
 \def\atdummies{%
-  \def\@{@@}%
-  \def\ {@ }%
-  \let\{ = \lbraceatcmd
-  \let\} = \rbraceatcmd
+  \definedummyletter\@%
+  \definedummyletter\ %
+  \definedummyletter\{%
+  \definedummyletter\}%
   %
   % Do the redefinitions.
-  \commondummies
+  \definedummies
   \otherbackslash
 }
 
-% Called from \indexdummies and \atdummies.
+% \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
+% control characters, but is needed to separate the control word
+% from whatever follows.
 %
-\def\commondummies{%
-  %
-  % \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
-  % control characters, but is needed to separate the control word
-  % from whatever follows.
-  %
-  % For control letters, we have \definedummyletter, which omits the
-  % space.
-  %
-  % These can be used both for control words that take an argument and
-  % those that do not.  If it is followed by {arg} in the input, then
-  % that will dutifully get written to the index (or wherever).
-  %
-  \def\definedummyword  ##1{\def##1{\string##1\space}}%
-  \def\definedummyletter##1{\def##1{\string##1}}%
-  \let\definedummyaccent\definedummyletter
+% These can be used both for control words that take an argument and
+% those that do not.  If it is followed by {arg} in the input, then
+% that will dutifully get written to the index (or wherever).
+%
+% For control letters, we have \definedummyletter, which omits the
+% space.
+%
+\def\definedummyword  #1{\def#1{\string#1\space}}%
+\def\definedummyletter#1{\def#1{\string#1}}%
+\let\definedummyaccent\definedummyletter
+
+% Called from \indexdummies and \atdummies, to effectively prevent
+% the expansion of commands.
+%
+\def\definedummies{%
   %
+  \let\commondummyword\definedummyword
+  \let\commondummyletter\definedummyletter
+  \let\commondummyaccent\definedummyaccent
   \commondummiesnofonts
   %
   \definedummyletter\_%
@@ -4506,6 +4999,7 @@ end
   \definedummyword\guilsinglright
   \definedummyword\lbracechar
   \definedummyword\leq
+  \definedummyword\mathopsup
   \definedummyword\minus
   \definedummyword\ogonek
   \definedummyword\pounds
@@ -4519,88 +5013,136 @@ end
   \definedummyword\quotesinglbase
   \definedummyword\rbracechar
   \definedummyword\result
+  \definedummyword\sub
+  \definedummyword\sup
   \definedummyword\textdegree
   %
   % We want to disable all macros so that they are not expanded by \write.
   \macrolist
+  \let\value\dummyvalue
   %
   \normalturnoffactive
-  %
-  % Handle some cases of @value -- where it does not contain any
-  % (non-fully-expandable) commands.
-  \makevalueexpandable
 }
 
-% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+% \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.
-  \definedummyletter\!%
-  \definedummyaccent\"%
-  \definedummyaccent\'%
-  \definedummyletter\*%
-  \definedummyaccent\,%
-  \definedummyletter\.%
-  \definedummyletter\/%
-  \definedummyletter\:%
-  \definedummyaccent\=%
-  \definedummyletter\?%
-  \definedummyaccent\^%
-  \definedummyaccent\`%
-  \definedummyaccent\~%
-  \definedummyword\u
-  \definedummyword\v
-  \definedummyword\H
-  \definedummyword\dotaccent
-  \definedummyword\ogonek
-  \definedummyword\ringaccent
-  \definedummyword\tieaccent
-  \definedummyword\ubaraccent
-  \definedummyword\udotaccent
-  \definedummyword\dotless
+  \commondummyletter\!%
+  \commondummyaccent\"%
+  \commondummyaccent\'%
+  \commondummyletter\*%
+  \commondummyaccent\,%
+  \commondummyletter\.%
+  \commondummyletter\/%
+  \commondummyletter\:%
+  \commondummyaccent\=%
+  \commondummyletter\?%
+  \commondummyaccent\^%
+  \commondummyaccent\`%
+  \commondummyaccent\~%
+  \commondummyword\u
+  \commondummyword\v
+  \commondummyword\H
+  \commondummyword\dotaccent
+  \commondummyword\ogonek
+  \commondummyword\ringaccent
+  \commondummyword\tieaccent
+  \commondummyword\ubaraccent
+  \commondummyword\udotaccent
+  \commondummyword\dotless
   %
   % Texinfo font commands.
-  \definedummyword\b
-  \definedummyword\i
-  \definedummyword\r
-  \definedummyword\sansserif
-  \definedummyword\sc
-  \definedummyword\slanted
-  \definedummyword\t
+  \commondummyword\b
+  \commondummyword\i
+  \commondummyword\r
+  \commondummyword\sansserif
+  \commondummyword\sc
+  \commondummyword\slanted
+  \commondummyword\t
   %
   % Commands that take arguments.
-  \definedummyword\abbr
-  \definedummyword\acronym
-  \definedummyword\anchor
-  \definedummyword\cite
-  \definedummyword\code
-  \definedummyword\command
-  \definedummyword\dfn
-  \definedummyword\dmn
-  \definedummyword\email
-  \definedummyword\emph
-  \definedummyword\env
-  \definedummyword\file
-  \definedummyword\image
-  \definedummyword\indicateurl
-  \definedummyword\inforef
-  \definedummyword\kbd
-  \definedummyword\key
-  \definedummyword\math
-  \definedummyword\option
-  \definedummyword\pxref
-  \definedummyword\ref
-  \definedummyword\samp
-  \definedummyword\strong
-  \definedummyword\tie
-  \definedummyword\uref
-  \definedummyword\url
-  \definedummyword\var
-  \definedummyword\verb
-  \definedummyword\w
-  \definedummyword\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
+}
+
+% For testing: output @{ and @} in index sort strings as \{ and \}.
+\newif\ifusebracesinindexes
+
+\let\indexlbrace\relax
+\let\indexrbrace\relax
+
+{\catcode`\@=0
+\catcode`\\=13
+  @gdef@backslashdisappear{@def\{}}
+}
+
+{
+\catcode`\<=13
+\catcode`\-=13
+\catcode`\`=13
+  \gdef\indexnonalnumdisappear{%
+    \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax\else
+      % @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
+      \backslashdisappear
+    \fi
+    %
+    \expandafter\ifx\csname SETtxiindexhyphenignore\endcsname\relax\else
+      \def-{}%
+    \fi
+    \expandafter\ifx\csname SETtxiindexlessthanignore\endcsname\relax\else
+      \def<{}%
+    \fi
+    \expandafter\ifx\csname SETtxiindexatsignignore\endcsname\relax\else
+      \def\@{}%
+    \fi
+  }
+
+  \gdef\indexnonalnumreappear{%
+    \useindexbackslash
+    \let-\normaldash
+    \let<\normalless
+    \def\@{@}%
+  }
 }
 
+
 % \indexnofonts is used when outputting the strings to sort the index
 % by, and when constructing control sequence names.  It eliminates all
 % control sequences and just writes whatever the best ASCII sort string
@@ -4608,12 +5150,11 @@ end
 %
 \def\indexnofonts{%
   % Accent commands should become @asis.
-  \def\definedummyaccent##1{\let##1\asis}%
+  \def\commondummyaccent##1{\let##1\asis}%
   % We can just ignore other control letters.
-  \def\definedummyletter##1{\let##1\empty}%
+  \def\commondummyletter##1{\let##1\empty}%
   % All control words become @asis by default; overrides below.
-  \let\definedummyword\definedummyaccent
-  %
+  \let\commondummyword\commondummyaccent
   \commondummiesnofonts
   %
   % Don't no-op \tt, since it isn't a user-level command
@@ -4626,14 +5167,10 @@ end
   \def\_{\normalunderscore}%
   \def\-{}% @- shouldn't affect sorting
   %
-  % Unfortunately, texindex is not prepared to handle braces in the
-  % content at all.  So for index sorting, we map @{ and @} to strings
-  % starting with |, since that ASCII character is between ASCII { and }.
-  \def\{{|a}%
-  \def\lbracechar{|a}%
-  %
-  \def\}{|b}%
-  \def\rbracechar{|b}%
+  \uccode`\1=`\{ \uppercase{\def\{{1}}%
+  \uccode`\1=`\} \uppercase{\def\}{1}}%
+  \let\lbracechar\{%
+  \let\rbracechar\}%
   %
   % Non-English letters.
   \def\AA{AA}%
@@ -4642,7 +5179,7 @@ end
   \def\L{L}%
   \def\OE{OE}%
   \def\O{O}%
-  \def\TH{ZZZ}%
+  \def\TH{TH}%
   \def\aa{aa}%
   \def\ae{ae}%
   \def\dh{dzz}%
@@ -4654,7 +5191,7 @@ end
   \def\o{o}%
   \def\questiondown{?}%
   \def\ss{ss}%
-  \def\th{zzz}%
+  \def\th{th}%
   %
   \def\LaTeX{LaTeX}%
   \def\TeX{TeX}%
@@ -4691,9 +5228,6 @@ end
   \def\result{=>}%
   \def\textdegree{o}%
   %
-  \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax
-  \else \indexlquoteignore \fi
-  %
   % 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
@@ -4705,21 +5239,23 @@ end
   % goes to end-of-line is not handled.
   %
   \macrolist
+  \let\value\indexnofontsvalue
 }
 
-% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us
-% ignore left quotes in the sort term.
-{\catcode`\`=\active
- \gdef\indexlquoteignore{\let`=\empty}}
+\f
+
 
-\let\indexbackslash=0  %overridden during \printindex.
 \let\SETmarginindex=\relax % put index entries in margin (undocumented)?
 
 % Most index entries go through here, but \dosubind is the general case.
 % #1 is the index name, #2 is the entry text.
 \def\doind#1#2{\dosubind{#1}{#2}{}}
 
-% Workhorse for all \fooindexes.
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+% TODO: Two-level index?  Operation index?
+
+% Workhorse for all indexes.
 % #1 is name of index, #2 is stuff to put there, #3 is subentry --
 % empty if called from \doind, as we usually are (the main exception
 % is with most defuns, which call us directly).
@@ -4727,6 +5263,7 @@ end
 \def\dosubind#1#2#3{%
   \iflinks
   {%
+    \requireopenindexfile{#1}%
     % Store the main index entry text (including the third arg).
     \toks0 = {#2}%
     % If third arg is present, precede it with a space.
@@ -4742,7 +5279,50 @@ end
   \fi
 }
 
-% Write the entry in \toks0 to the index file:
+% Check if an index file has been opened, and if not, open it.
+\def\requireopenindexfile#1{%
+\ifnum\csname #1indfile\endcsname=0
+  \expandafter\newwrite \csname#1indfile\endcsname
+  \edef\suffix{#1}%
+  % A .fls suffix would conflict with the file extension for the output
+  % of -recorder, so use .f1s instead.
+  \ifx\suffix\indexisfl\def\suffix{f1}\fi
+  % Open the file
+  \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
+  % Using \immediate above here prevents an object entering into the current 
+  % box, which could confound checks such as those in \safewhatsit for
+  % preceding skips.
+  \typeout{Writing index file \jobname.\suffix}%
+\fi}
+\def\indexisfl{fl}
+
+% Output \ as {\indexbackslash}, because \ is an escape character in
+% the index files.
+\let\indexbackslash=\relax
+{\catcode`\@=0 \catcode`\\=\active
+  @gdef@useindexbackslash{@def\{{@indexbackslash}}}
+}
+
+% Definition for writing index entry text.
+\def\sortas#1{\ignorespaces}%
+
+% Definition for writing index entry sort key.  Should occur at the at
+% the beginning of the index entry, like
+%     @cindex @sortas{september} \september
+% The \ignorespaces takes care of following space, but there's no way
+% to remove space before it.
+{
+\catcode`\-=13
+\gdef\indexwritesortas{%
+  \begingroup
+  \indexnonalnumreappear
+  \indexwritesortasxxx}
+\gdef\indexwritesortasxxx#1{%
+  \xdef\indexsortkey{#1}\endgroup}
+}
+
+
+% Write the entry in \toks0 to the index file.
 %
 \def\dosubindwrite{%
   % Put the index entry in the margin if desired.
@@ -4752,14 +5332,26 @@ end
   %
   % Remember, we are within a group.
   \indexdummies % Must do this here, since \bf, etc expand at this stage
-  \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
-      % so it will be output as is; and it will print as backslash.
+  \useindexbackslash % \indexbackslash isn't defined now so it will be output 
+                     % as is; and it will print as backslash.
+  % The braces around \indexbrace are recognized by texindex.
   %
-  % Process the index entry with all font commands turned off, to
-  % get the string to sort by.
+  % Get the string to sort by, by processing the index entry with all
+  % font commands turned off.
   {\indexnofonts
-   \edef\temp{\the\toks0}% need full expansion
-   \xdef\indexsorttmp{\temp}%
+   \def\lbracechar{{\indexlbrace}}%
+   \def\rbracechar{{\indexrbrace}}%
+   \let\{=\lbracechar
+   \let\}=\rbracechar
+   \indexnonalnumdisappear
+   \xdef\indexsortkey{}%
+   \let\sortas=\indexwritesortas
+   \edef\temp{\the\toks0}%
+   \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas
+   \ifx\indexsortkey\empty
+     \xdef\indexsortkey{\temp}%
+     \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
+   \fi
   }%
   %
   % Set up the complete index entry, with both the sort key and
@@ -4769,10 +5361,11 @@ end
   % sorted result.
   \edef\temp{%
     \write\writeto{%
-      \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+      \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}%
   }%
   \temp
 }
+\newbox\dummybox % used above
 
 % Take care of unwanted page breaks/skips around a whatsit:
 %
@@ -4897,52 +5490,107 @@ end
   % \initial {@}
   % as its first line, TeX doesn't complain about mismatched braces
   % (because it thinks @} is a control sequence).
-  \catcode`\@ = 11
-  \openin 1 \jobname.#1s
+  \catcode`\@ = 12
+  % See comment in \requireopenindexfile.
+  \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
+  \openin 1 \jobname.\indexname s
   \ifeof 1
     % \enddoublecolumns gets confused if there is no text in the index,
     % and it loses the chapter title and the aux file entries for the
     % index.  The easiest way to prevent this problem is to make sure
     % there is some text.
     \putwordIndexNonexistent
+    \typeout{No file \jobname.\indexname s.}%
   \else
+    \catcode`\\ = 0
     %
     % If the index file exists but is empty, then \openin leaves \ifeof
     % false.  We have to make TeX try to read something from the file, so
     % it can discover if there is anything in it.
-    \read 1 to \temp
+    \read 1 to \thisline
     \ifeof 1
       \putwordIndexIsEmpty
     \else
       % Index files are almost Texinfo source, but we use \ as the escape
       % character.  It would be better to use @, but that's too big a change
       % to make right now.
-      \def\indexbackslash{\backslashcurfont}%
-      \catcode`\\ = 0
-      \escapechar = `\\
+      \def\indexbackslash{\ttbackslash}%
+      \let\indexlbrace\{   % Likewise, set these sequences for braces
+      \let\indexrbrace\}   % used in the sort key.
       \begindoublecolumns
-      \input \jobname.#1s
+      \let\entrywidowpenalty=\indexwidowpenalty
+      %
+      % Read input from the index file line by line.
+      \loopdo
+        \ifeof1
+          \let\firsttoken\relax
+        \else
+          \read 1 to \nextline
+          \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
+          \act
+        \fi
+        \thisline
+        %
+        \ifeof1\else
+        \let\thisline\nextline
+      \repeat
+      %%
       \enddoublecolumns
     \fi
   \fi
   \closein 1
 \endgroup}
 
+\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
+\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
+
+\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
+\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
+
 % These macros are used by the sorted index file itself.
 % Change them to control the appearance of the index.
 
-\def\initial#1{{%
-  % Some minor font changes for the special characters.
-  \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
-  %
+{\catcode`\/=13 \catcode`\-=13 \catcode`\^=13 \catcode`\~=13 \catcode`\_=13
+\catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13
+\catcode`\$=3
+\gdef\initialglyphs{%
+  % Some changes for non-alphabetic characters.  Using the glyphs from the
+  % math fonts looks more consistent than the typewriter font used elsewhere
+  % for these characters.
+  \def\indexbackslash{\math{\backslash}}%
+  \let\\=\indexbackslash
+  %
+  % Can't get bold backslash so don't use bold forward slash
+  \catcode`\/=13
+  \def/{{\secrmnotbold \normalslash}}%
+  \def-{{\normaldash\normaldash}}% en dash `--'
+  \def^{{\chapbf \normalcaret}}%
+  \def~{{\chapbf \normaltilde}}%
+  \def\_{%
+     \leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }%
+  \def|{$\vert$}%
+  \def<{$\less$}%
+  \def>{$\gtr$}%
+  \def+{$\normalplus$}%
+}}
+
+\def\initial{%
+  \bgroup
+  \initialglyphs
+  \initialx
+}
+
+\def\initialx#1{%
   % Remove any glue we may have, we'll be inserting our own.
   \removelastskip
   %
   % We like breaks before the index initials, so insert a bonus.
+  % The glue before the bonus allows a little bit of space at the
+  % bottom of a column to reduce an increase in inter-line spacing.
   \nobreak
-  \vskip 0pt plus 3\baselineskip
-  \penalty 0
-  \vskip 0pt plus -3\baselineskip
+  \vskip 0pt plus 5\baselineskip
+  \penalty -300 
+  \vskip 0pt plus -5\baselineskip
   %
   % Typeset the initial.  Making this add up to a whole number of
   % baselineskips increases the chance of the dots lining up from column
@@ -4950,24 +5598,24 @@ end
   % we need before each entry, but it's better.
   %
   % No shrink because it confuses \balancecolumns.
-  \vskip 1.67\baselineskip plus .5\baselineskip
-  \leftline{\secbf #1}%
+  \vskip 1.67\baselineskip plus 1\baselineskip
+  \leftline{\secfonts \kern-0.05em \secbf #1}%
+  % \secfonts is inside the argument of \leftline so that the change of
+  % \baselineskip will not affect any glue inserted before the vbox that
+  % \leftline creates.
   % Do our best not to break after the initial.
   \nobreak
   \vskip .33\baselineskip plus .1\baselineskip
-}}
+  \egroup % \initialglyphs
+}
+
+\newdimen\entryrightmargin
+\entryrightmargin=0pt
 
 % \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.
 %
-% A straightforward implementation would start like this:
-%      \def\entry#1#2{...
-% But this freezes the catcodes in the argument, and can cause problems to
-% @code, which sets - active.  This problem was fixed by a kludge---
-% ``-'' was active throughout whole index, but this isn't really right.
-% The right solution is to prevent \entry from swallowing the whole text.
-%                                 --kasal, 21nov03
 \def\entry{%
   \begingroup
     %
@@ -4975,38 +5623,14 @@ end
     % affect previous text.
     \par
     %
-    % Do not fill out the last line with white space.
-    \parfillskip = 0in
-    %
     % No extra space above this paragraph.
     \parskip = 0in
     %
-    % Do not prefer a separate line ending with a hyphen to fewer lines.
-    \finalhyphendemerits = 0
-    %
-    % \hangindent is only relevant when the entry text and page number
-    % don't both fit on one line.  In that case, bob suggests starting the
-    % dots pretty far over on the line.  Unfortunately, a large
-    % indentation looks wrong when the entry text itself is broken across
-    % lines.  So we use a small indentation and put up with long leaders.
-    %
-    % \hangafter is reset to 1 (which is the value we want) at the start
-    % of each paragraph, so we need not do anything with that.
-    \hangindent = 2em
-    %
-    % When the entry text needs to be broken, just fill out the first line
-    % with blank space.
-    \rightskip = 0pt plus1fil
-    %
-    % A bit of stretch before each entry for the benefit of balancing
-    % columns.
-    \vskip 0pt plus1pt
-    %
     % When reading the text of entry, convert explicit line breaks
     % from @* into spaces.  The user might give these in long section
     % titles, for instance.
     \def\*{\unskip\space\ignorespaces}%
-    \def\entrybreak{\hfil\break}%
+    \def\entrybreak{\hfil\break}% An undocumented command
     %
     % Swallow the left brace of the text (first parameter):
     \afterassignment\doentry
@@ -5014,45 +5638,173 @@ end
 }
 \def\entrybreak{\unskip\space\ignorespaces}%
 \def\doentry{%
+    % Save the text of the entry
+    \global\setbox\boxA=\hbox\bgroup
     \bgroup % Instead of the swallowed brace.
       \noindent
       \aftergroup\finishentry
       % And now comes the text of the entry.
+      % Not absorbing as a macro argument reduces the chance of problems
+      % with catcodes occurring.
 }
-\def\finishentry#1{%
+{\catcode`\@=11
+\gdef\finishentry#1{%
+    \egroup % end box A
+    \dimen@ = \wd\boxA % Length of text of entry
+    \global\setbox\boxA=\hbox\bgroup\unhbox\boxA
     % #1 is the page number.
     %
-    % The following is kludged to not output a line of dots in the index if
-    % there are no page numbers.  The next person who breaks this will be
-    % cursed by a Unix daemon.
-    \setbox\boxA = \hbox{#1}%
-    \ifdim\wd\boxA = 0pt
-      \ %
+    % Get the width of the page numbers, and only use
+    % leaders if they are present.
+    \global\setbox\boxB = \hbox{#1}%
+    \ifdim\wd\boxB = 0pt
+      \null\nobreak\hfill\ %
     \else
       %
-      % If we must, put the page number on a line of its own, and fill out
-      % this line with blank space.  (The \hfil is overwhelmed with the
-      % fill leaders glue in \indexdotfill if the page number does fit.)
-      \hfil\penalty50
       \null\nobreak\indexdotfill % Have leaders before the page number.
       %
-      % The `\ ' here is removed by the implicit \unskip that TeX does as
-      % part of (the primitive) \par.  Without it, a spurious underfull
-      % \hbox ensues.
       \ifpdf
-       \pdfgettoks#1.%
-       \ \the\toksA
+        \pdfgettoks#1.%
+        \bgroup\let\domark\relax
+          \hskip\skip\thinshrinkable\the\toksA
+        \egroup
+        % The redefinion of \domark stops marks being added in \pdflink to 
+        % preserve coloured links across page boundaries.  Otherwise the marks
+        % would get in the way of \lastbox in \insertindexentrybox.
       \else
-       \ #1%
+        \ifx\XeTeXrevision\thisisundefined
+          \hskip\skip\thinshrinkable #1%
+        \else
+          \pdfgettoks#1.%
+          \bgroup\let\domark\relax
+            \hskip\skip\thinshrinkable\the\toksA
+          \egroup
+        \fi
       \fi
     \fi
-    \par
+    \egroup % end \boxA
+    \ifdim\wd\boxB = 0pt
+      \global\setbox\entryindexbox=\vbox{\unhbox\boxA}%
+    \else
+    \global\setbox\entryindexbox=\vbox\bgroup
+      % We want the text of the entries to be aligned to the left, and the
+      % page numbers to be aligned to the right.
+      %
+      \parindent = 0pt
+      \advance\leftskip by 0pt plus 1fil
+      \advance\leftskip by 0pt plus -1fill
+      \rightskip = 0pt plus -1fil
+      \advance\rightskip by 0pt plus 1fill
+      % Cause last line, which could consist of page numbers on their own
+      % if the list of page numbers is long, to be aligned to the right.
+      \parfillskip=0pt plus -1fill
+      %
+      \advance\rightskip by \entryrightmargin
+      % Determine how far we can stretch into the margin.
+      % This allows, e.g., "Appendix H  GNU Free Documentation License" to
+      % fit on one line in @letterpaper format.
+      \ifdim\entryrightmargin>2.1em
+        \dimen@i=2.1em
+      \else
+        \dimen@i=0em
+      \fi
+      \advance \parfillskip by 0pt minus 1\dimen@i
+      %
+      \dimen@ii = \hsize
+      \advance\dimen@ii by -1\leftskip
+      \advance\dimen@ii by -1\entryrightmargin
+      \advance\dimen@ii by 1\dimen@i
+      \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
+      \ifdim\dimen@ > 0.8\dimen@ii   % due to long index text
+        \dimen@ = 0.7\dimen@ % Try to split the text roughly evenly
+        \dimen@ii = \hsize
+        \ifnum\dimen@>\dimen@ii
+          % If the entry is too long, use the whole line
+          \dimen@ = \dimen@ii
+        \fi
+        \advance\leftskip by 0pt plus 1fill % ragged right
+        \advance \dimen@ by 1\rightskip
+        \parshape = 2 0pt \dimen@ 0em \dimen@ii
+        % Ideally we'd add a finite glue at the end of the first line only,
+        % instead of using \parshape with explicit line lengths, but TeX
+        % doesn't seem to provide a way to do such a thing.
+        %
+        \leftskip = 1em
+        \parindent = -1em
+      \fi\fi
+      \indent % start paragraph
+      \unhbox\boxA
+      %
+      % Do not prefer a separate line ending with a hyphen to fewer lines.
+      \finalhyphendemerits = 0
+      %
+      % Word spacing - no stretch
+      \spaceskip=\fontdimen2\font minus \fontdimen4\font
+      %
+      \linepenalty=1000  % Discourage line breaks.
+      \hyphenpenalty=5000  % Discourage hyphenation.
+      %
+      \par % format the paragraph
+    \egroup % The \vbox
+    \fi
   \endgroup
+  % delay text of entry until after penalty
+  \bgroup\aftergroup\insertindexentrybox
+  \entrywidowpenalty
+}}
+
+\newskip\thinshrinkable
+\skip\thinshrinkable=.15em minus .15em
+
+\newbox\entryindexbox
+\def\insertindexentrybox{%
+  \ourunvbox\entryindexbox
+}
+
+% Use \lastbox to take apart vbox box by box, and add each sub-box
+% to the current vertical list.
+\def\ourunvbox#1{%
+\bgroup % for local binding of \delayedbox
+  % Remove the last box from box #1
+  \global\setbox#1=\vbox{%
+    \unvbox#1%
+    \unskip % remove any glue
+    \unpenalty
+    \global\setbox\interbox=\lastbox
+  }%
+  \setbox\delayedbox=\box\interbox
+  \ifdim\ht#1=0pt\else
+    \ourunvbox#1 % Repeat on what's left of the box
+    \nobreak
+  \fi
+  \box\delayedbox
+\egroup
+}
+\newbox\delayedbox
+\newbox\interbox
+
+% Default is no penalty
+\let\entrywidowpenalty\egroup
+
+% Used from \printindex.  \firsttoken should be the first token
+% after the \entry.  If it's not another \entry, we are at the last
+% line of a group of index entries, so insert a penalty to discourage
+% widowed index entries.
+\long\def\indexwidowpenalty{%
+  \def\isentry{\entry}%
+  \ifx\firsttoken\isentry
+  \else
+    \penalty 9000
+  \fi
+  \egroup % now comes the box added with \aftergroup
 }
 
 % Like plain.tex's \dotfill, except uses up at least 1 em.
+% The filll stretch here overpowers both the fil and fill stretch to push
+% the page number to the right.
 \def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1filll}
+
 
 \def\primary #1{\line{#1\hfil}}
 
@@ -5066,7 +5818,11 @@ end
   \ifpdf
     \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
   \else
-    #2
+    \ifx\XeTeXrevision\thisisundefined
+      #2
+    \else
+      \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+    \fi
   \fi
   \par
 }}
@@ -5074,12 +5830,39 @@ end
 % Define two-column mode, which we use to typeset indexes.
 % Adapted from the TeXbook, page 416, which is to say,
 % the manmac.tex format used to print the TeXbook itself.
-\catcode`\@=11
+\catcode`\@=11  % private names
 
 \newbox\partialpage
 \newdimen\doublecolumnhsize
+\newdimen\doublecolumntopgap
+\doublecolumntopgap = 0pt
+
+% Use inside an output routine to save \topmark and \firstmark
+\def\savemarks{%
+  \global\savedtopmark=\expandafter{\topmark }%
+  \global\savedfirstmark=\expandafter{\firstmark }%
+}
+\newtoks\savedtopmark
+\newtoks\savedfirstmark
+
+% Set \topmark and \firstmark for next time \output runs.
+% Can't be run from withinside \output (because any material
+% added while an output routine is active, including 
+% penalties, is saved for after it finishes).  The page so far
+% should be empty, otherwise what's on it will be thrown away.
+\def\restoremarks{%
+  \mark{\the\savedtopmark}%
+  \bgroup\output = {%
+    \setbox\dummybox=\box\PAGE
+  }abc\eject\egroup
+  % "abc" because output routine doesn't fire for a completely empty page.
+  \mark{\the\savedfirstmark}%
+}
 
 \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+  % If not much space left on page, start a new page.
+  \ifdim\pagetotal>0.8\vsize\vfill\eject\fi
+  %
   % Grab any single-column material above us.
   \output = {%
     %
@@ -5099,8 +5882,15 @@ end
       \unvbox\PAGE
       \kern-\topskip \kern\baselineskip
     }%
+    \savemarks
   }%
   \eject % run that output routine to set \partialpage
+  \restoremarks
+  %
+  % We recover the two marks that the last output routine saved in order
+  % to propagate the information in marks added around a chapter heading,
+  % which could be otherwise be lost by the time the final page is output.
+  %
   %
   % Use the double-column output routine for subsequent pages.
   \output = {\doublecolumnout}%
@@ -5128,13 +5918,21 @@ end
   %
   % Double the \vsize as well.  (We don't need a separate register here,
   % since nobody clobbers \vsize.)
+  \global\doublecolumntopgap = \topskip
+  \global\advance\doublecolumntopgap by -1\baselineskip
+  \advance\vsize by -1\doublecolumntopgap
   \vsize = 2\vsize
+  \topskip=0pt
+  %
+  % For the benefit of balancing columns
+  \advance\baselineskip by 0pt plus 0.5pt
 }
 
 % The double-column output routine for all double-column pages except
-% the last.
+% the last, which is done by \balancecolumns.
 %
 \def\doublecolumnout{%
+  %
   \splittopskip=\topskip \splitmaxdepth=\maxdepth
   % Get the available space for the double columns -- the normal
   % (undoubled) page height minus any material left over from the
@@ -5157,10 +5955,13 @@ end
   %
   \hsize = \doublecolumnhsize
   \wd0=\hsize \wd2=\hsize
-  \hbox to\pagewidth{\box0\hfil\box2}%
+  \vbox{%
+    \vskip\doublecolumntopgap
+    \hbox to\txipagewidth{\box0\hfil\box2}}%
 }
-%
-% All done with double columns.
+
+
+% Finished with with double columns.
 \def\enddoublecolumns{%
   % The following penalty ensures that the page builder is exercised
   % _before_ we change the output routine.  This is necessary in the
@@ -5183,7 +5984,7 @@ end
   % goal.  When TeX sees \eject from below which follows the final
   % section, it invokes the new output routine that we've set after
   % \balancecolumns below; \onepageout will try to fit the two columns
-  % and the final section into the vbox of \pageheight (see
+  % and the final section into the vbox of \txipageheight (see
   % \pagebody), causing an overfull box.
   %
   % Note that glue won't work here, because glue does not exercise the
@@ -5191,21 +5992,21 @@ end
   \penalty0
   %
   \output = {%
-    % Split the last of the double-column material.  Leave it on the
-    % current page, no automatic page break.
+    % Split the last of the double-column material.
+    \savemarks
     \balancecolumns
     %
-    % If we end up splitting too much material for the current page,
-    % though, there will be another page break right after this \output
-    % invocation ends.  Having called \balancecolumns once, we do not
+    % Having called \balancecolumns once, we do not
     % want to call it again.  Therefore, reset \output to its normal
-    % definition right away.  (We hope \balancecolumns will never be
-    % called on to balance too much material, but if it is, this makes
-    % the output somewhat more palatable.)
+    % definition right away.
     \global\output = {\onepageout{\pagecontents\PAGE}}%
   }%
   \eject
   \endgroup % started in \begindoublecolumns
+  \restoremarks
+  % Leave the double-column material on the current page, no automatic
+  % page break.
+  \box\balancedcolumns
   %
   % \pagegoal was set to the doubled \vsize above, since we restarted
   % the current page.  We're now back to normal single-column
@@ -5213,31 +6014,63 @@ end
   % \endgroup where \vsize got restored).
   \pagegoal = \vsize
 }
+\newbox\balancedcolumns
+\setbox\balancedcolumns=\vbox{shouldnt see this}%
 %
-% Called at the end of the double column material.
+% Only called for the last of the double column material.  \doublecolumnout 
+% does the others.
 \def\balancecolumns{%
   \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
   \dimen@ = \ht0
   \advance\dimen@ by \topskip
   \advance\dimen@ by-\baselineskip
-  \divide\dimen@ by 2 % target to split to
-  %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
-  \splittopskip = \topskip
-  % Loop until we get a decent breakpoint.
-  {%
-    \vbadness = 10000
-    \loop
-      \global\setbox3 = \copy0
-      \global\setbox1 = \vsplit3 to \dimen@
-    \ifdim\ht3>\dimen@
-      \global\advance\dimen@ by 1pt
-    \repeat
-  }%
-  %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
-  \setbox0=\vbox to\dimen@{\unvbox1}%
-  \setbox2=\vbox to\dimen@{\unvbox3}%
+  \ifdim\dimen@<5\baselineskip
+    % Don't split a short final column in two.
+    \setbox2=\vbox{}%
+  \else
+    \divide\dimen@ by 2 % target to split to
+    \dimen@ii = \dimen@
+    \splittopskip = \topskip
+    % Loop until left column is at least as high as the right column.
+    {%
+      \vbadness = 10000
+      \loop
+        \global\setbox3 = \copy0
+        \global\setbox1 = \vsplit3 to \dimen@
+        % Remove glue from bottom of columns to compare
+        % apparent heights.
+        \global\setbox1 = \vbox{\unvbox1\unpenalty\unskip}%
+        \global\setbox3 = \vbox{\unvbox3\unpenalty\unskip}%
+      \ifdim\ht1<\ht3
+        \global\advance\dimen@ by 1pt
+      \repeat
+    }%
+    % Now the left column is in box 1, and the right column in box 3.
+    % Check whether the left column has come out higher than the page itself.  
+    % (Note that we have doubled \vsize for the double columns, so
+    % the actual height of the page is 0.5\vsize).
+    \ifdim2\ht1>\vsize
+      % Just split the last of the double column material roughly in half.
+      \setbox2=\box0
+      \setbox0 = \vsplit2 to \dimen@ii
+      \setbox0=\vbox to\ht2{\unvbox0\vfill}%
+      \setbox2=\vbox to\ht2{\unvbox2\vfill}%
+    \else
+      % Compare the heights of the two columns.
+      \ifdim4\ht1>5\ht3
+        % Column heights are too different, so don't make their bottoms
+        % flush with each other.
+        \setbox2=\vbox to \ht1 {\unvbox3\vfill}%
+        \setbox0=\vbox to \ht1 {\unvbox1\vfill}%
+      \else
+        % Make column bottoms flush with each other.
+        \setbox0=\vbox to\dimen@{\unvbox1}%
+        \setbox2=\vbox to\dimen@{\unvbox3}%
+      \fi
+    \fi
+  \fi
   %
-  \pagesofar
+  \global\setbox\balancedcolumns=\vbox{\pagesofar}%
 }
 \catcode`\@ = \other
 
@@ -5256,6 +6089,10 @@ end
     \let\lastnode=\empty      % no node to associate with
     \writetocentry{part}{#1}{}% but put it in the toc
     \headingsoff              % no headline or footline on the part page
+    % This outputs a mark at the end of the page that clears \thischapter
+    % and \thissection, as is done in \startcontents.
+    \let\pchapsepmacro\relax
+    \chapmacro{}{Yomitfromtoc}{}%
     \chapoddpage
   \endgroup
 }
@@ -5500,9 +6337,6 @@ end
 
 % @centerchap is like @unnumbered, but the heading is centered.
 \outer\parseargdef\centerchap{%
-  % Well, we could do the following in a group, but that would break
-  % an assumption that \chapmacro is called at the outermost level.
-  % Thus we are safer this way:                --kasal, 24feb04
   \let\centerparametersmaybe = \centerparameters
   \unnmhead0{#1}%
   \let\centerparametersmaybe = \relax
@@ -5626,7 +6460,11 @@ end
 
 % Define plain chapter starts, and page on/off switching for it.
 \def\chapbreak{\dobreak \chapheadingskip {-4000}}
+
+% Start a new page
 \def\chappager{\par\vfill\supereject}
+
+% \chapoddpage - start on an odd page for a new chapter
 % Because \domark is called before \chapoddpage, the filler page will
 % get the headings for the next chapter, which is wrong.  But we don't
 % care -- we just disable all headings on the filler page.
@@ -5641,7 +6479,7 @@ end
   \fi
 }
 
-\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+\parseargdef\setchapternewpage{\csname CHAPPAG#1\endcsname}
 
 \def\CHAPPAGoff{%
 \global\let\contentsalignmacro = \chappager
@@ -5662,17 +6500,26 @@ end
 
 \CHAPPAGon
 
-% Chapter opening.
+% \chapmacro - Chapter opening.
 %
 % #1 is the text, #2 is the section type (Ynumbered, Ynothing,
 % Yappendix, Yomitfromtoc), #3 the chapter number.
+% Not used for @heading series.
 %
 % To test against our argument.
 \def\Ynothingkeyword{Ynothing}
-\def\Yomitfromtockeyword{Yomitfromtoc}
 \def\Yappendixkeyword{Yappendix}
+\def\Yomitfromtockeyword{Yomitfromtoc}
 %
 \def\chapmacro#1#2#3{%
+  \expandafter\ifx\thisenv\titlepage\else
+    \checkenv{}% chapters, etc., should not start inside an environment.
+  \fi
+  % FIXME: \chapmacro is currently called from inside \titlepage when
+  % \setcontentsaftertitlepage to print the "Table of Contents" heading, but
+  % this should probably be done by \sectionheading with an option to print
+  % in chapter size.
+  %
   % Insert the first mark before the heading break (see notes for \domark).
   \let\prevchapterdefs=\lastchapterdefs
   \let\prevsectiondefs=\lastsectiondefs
@@ -5725,6 +6572,7 @@ end
   %
   {%
     \chapfonts \rmisbold
+    \let\footnote=\errfootnoteheading % give better error message
     %
     % Have to define \lastsection before calling \donoderef, because the
     % xref code eventually uses it.  On the other hand, it has to be called
@@ -5777,30 +6625,6 @@ end
 }
 
 
-% I don't think this chapter style is supported any more, so I'm not
-% updating it with the new noderef stuff.  We'll see.  --karl, 11aug03.
-%
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-%
-\def\unnchfopen #1{%
-  \chapoddpage
-  \vbox{\chapfonts \raggedtitlesettings #1\par}%
-  \nobreak\bigskip\nobreak
-}
-\def\chfopen #1#2{\chapoddpage {\chapfonts
-\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
-\par\penalty 5000 %
-}
-\def\centerchfopen #1{%
-  \chapoddpage
-  \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}%
-  \nobreak\bigskip \nobreak
-}
-\def\CHAPFopen{%
-  \global\let\chapmacro=\chfopen
-  \global\let\centerchapmacro=\centerchfopen}
-
-
 % Section titles.  These macros combine the section number parts and
 % call the generic \sectionheading to do the printing.
 %
@@ -5818,22 +6642,29 @@ end
 
 % Print any size, any type, section title.
 %
-% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
-% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
-% section number.
+% #1 is the text of the title,
+% #2 is the section level (sec/subsec/subsubsec),
+% #3 is the section type (Ynumbered, Ynothing, Yappendix, Yomitfromtoc),
+% #4 is the section number.
 %
 \def\seckeyword{sec}
 %
 \def\sectionheading#1#2#3#4{%
   {%
-    \checkenv{}% should not be in an environment.
+    \def\sectionlevel{#2}%
+    \def\temptype{#3}%
+    %
+    % It is ok for the @heading series commands to appear inside an
+    % environment (it's been historically allowed, though the logic is
+    % dubious), but not the others.
+    \ifx\temptype\Yomitfromtockeyword\else
+      \checkenv{}% non-@*heading should not be in an environment.
+    \fi
+    \let\footnote=\errfootnoteheading
     %
     % Switch to the right set of fonts.
     \csname #2fonts\endcsname \rmisbold
     %
-    \def\sectionlevel{#2}%
-    \def\temptype{#3}%
-    %
     % Insert first mark before the heading break (see notes for \domark).
     \let\prevsectiondefs=\lastsectiondefs
     \ifx\temptype\Ynothingkeyword
@@ -5885,7 +6716,7 @@ end
     %
     % Now the second mark, after the heading break.  No break points
     % between here and the heading.
-    \let\prevsectiondefs=\lastsectiondefs
+    \global\let\prevsectiondefs=\lastsectiondefs
     \domark
     %
     % Only insert the space after the number if we have a section number.
@@ -5996,7 +6827,14 @@ end
   % 1 and 2 (the page numbers aren't printed), and so are the first
   % two pages of the document.  Thus, we'd have two destinations named
   % `1', and two named `2'.
-  \ifpdf \global\pdfmakepagedesttrue \fi
+  \ifpdf
+    \global\pdfmakepagedesttrue
+  \else
+    \ifx\XeTeXrevision\thisisundefined
+    \else
+      \global\pdfmakepagedesttrue
+    \fi
+  \fi
 }
 
 
@@ -6045,7 +6883,7 @@ end
   \savepageno = \pageno
   \begingroup                  % Set up to handle contents files properly.
     \raggedbottom              % Worry more about breakpoints than the bottom.
-    \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+    \entryrightmargin=\contentsrightmargin % Don't use the full line length.
     %
     % Roman numerals for page numbers.
     \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
@@ -6150,7 +6988,7 @@ end
 
 % Chapters, in the main contents.
 \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
-%
+
 % Chapters, in the short toc.
 % See comments in \dochapentry re vbox and related settings.
 \def\shortchapentry#1#2#3#4{%
@@ -6165,7 +7003,7 @@ end
   \setbox0 = \hbox{\putwordAppendix{} M}%
   \hbox to \wd0{\putwordAppendix{} #1\hss}}
 %
-\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\hskip.7em#1}{#4}}
 
 % Unnumbered chapters.
 \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
@@ -6198,6 +7036,8 @@ end
 \def\dochapentry#1#2{%
    \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
    \begingroup
+     % Move the page numbers slightly to the right
+     \advance\entryrightmargin by -0.05em
      \chapentryfonts
      \tocentry{#1}{\dopageno\bgroup#2\egroup}%
    \endgroup
@@ -6252,14 +7092,14 @@ end
   \catcode `\|=\other
   \catcode `\<=\other
   \catcode `\>=\other
-  \catcode`\`=\other
-  \catcode`\'=\other
-  \escapechar=`\\
+  \catcode `\`=\other
+  \catcode `\'=\other
   %
   % ' is active in math mode (mathcode"8000).  So reset it, and all our
   % other math active characters (just in case), to plain's definitions.
   \mathactive
   %
+  % Inverse of the list at the beginning of the file.
   \let\b=\ptexb
   \let\bullet=\ptexbullet
   \let\c=\ptexc
@@ -6275,9 +7115,11 @@ end
   \let\+=\tabalign
   \let\}=\ptexrbrace
   \let\/=\ptexslash
+  \let\sp=\ptexsp
   \let\*=\ptexstar
+  %\let\sup=\ptexsup % do not redefine, we want @sup to work in math mode
   \let\t=\ptext
-  \expandafter \let\csname top\endcsname=\ptextop  % outer
+  \expandafter \let\csname top\endcsname=\ptextop  % we've made it outer
   \let\frenchspacing=\plainfrenchspacing
   %
   \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -6301,12 +7143,30 @@ end
 % This space is always present above and below environments.
 \newskip\envskipamount \envskipamount = 0pt
 
-% Make spacing and below environment symmetrical.  We use \parskip here
-% to help in doing that, since in @example-like environments \parskip
-% is reset to zero; thus the \afterenvbreak inserts no space -- but the
-% start of the next paragraph will insert \parskip.
-%
-\def\aboveenvbreak{{%
+% Make spacing and below environment symmetrical.  We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+  % =10000 instead of <10000 because of a special case in \itemzzz and
+  % \sectionheading, q.v.
+  \ifnum \lastpenalty=10000 \else
+    \advance\envskipamount by \parskip
+    \endgraf
+    \ifdim\lastskip<\envskipamount
+      \removelastskip
+      \ifnum\lastpenalty<10000
+        % Penalize breaking before the environment, because preceding text
+        % often leads into it.
+        \penalty100
+      \fi
+      \vskip\envskipamount
+    \fi
+  \fi
+}}
+
+\def\afterenvbreak{{%
   % =10000 instead of <10000 because of a special case in \itemzzz and
   % \sectionheading, q.v.
   \ifnum \lastpenalty=10000 \else
@@ -6322,8 +7182,6 @@ end
   \fi
 }}
 
-\let\afterenvbreak = \aboveenvbreak
-
 % \nonarrowing is a flag.  If "set", @lisp etc don't narrow margins; it will
 % also clear it, so that its embedded environments do the narrowing again.
 \let\nonarrowing=\relax
@@ -6361,15 +7219,13 @@ end
                                % side, and for 6pt waste from
                                % each corner char, and rule thickness
   \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
-  % Flag to tell @lisp, etc., not to narrow margin.
-  \let\nonarrowing = t%
   %
   % If this cartouche directly follows a sectioning command, we need the
   % \parskip glue (backspaced over by default) or the cartouche can
   % collide with the section heading.
   \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi
   %
-  \vbox\bgroup
+  \setbox\groupbox=\vbox\bgroup
       \baselineskip=0pt\parskip=0pt\lineskip=0pt
       \carttop
       \hbox\bgroup
@@ -6393,6 +7249,7 @@ end
       \egroup
       \cartbot
   \egroup
+  \addgroupbox
   \checkinserts
 }
 
@@ -6402,7 +7259,7 @@ end
 \newdimen\nonfillparindent
 \def\nonfillstart{%
   \aboveenvbreak
-  \hfuzz = 12pt % Don't be fussy
+  \ifdim\hfuzz < 12pt \hfuzz = 12pt \fi % Don't be fussy
   \sepspaces % Make spaces be word-separators rather than space tokens.
   \let\par = \lisppar % don't ignore blank lines
   \obeylines % each line of input is a line of output
@@ -6529,9 +7386,13 @@ end
 
 
 % @raggedright does more-or-less normal line breaking but no right
-% justification.  From plain.tex.
+% justification.  From plain.tex.  Don't stretch around special
+% characters in urls in this environment, since the stretch at the right
+% should be enough.
 \envdef\raggedright{%
-  \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
+  \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
+  \def\urefprestretchamount{0pt}%
+  \def\urefpoststretchamount{0pt}%
 }
 \let\Eraggedright\par
 
@@ -6771,7 +7632,7 @@ end
 % typesetting commands (@smallbook, font changes, etc.) have to be done
 % beforehand -- and a) we want @copying to be done first in the source
 % file; b) letting users define the frontmatter in as flexible order as
-% possible is very desirable.
+% possible is desirable.
 %
 \def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
 \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
@@ -6866,7 +7727,7 @@ end
   \temp
 }
 
-% \domakedefun \deffn \deffnx \deffnheader
+% \domakedefun \deffn \deffnx \deffnheader { (defn. of \deffnheader) }
 %
 % Define \deffn and \deffnx, without parameters.
 % \deffnheader has to be defined explicitly.
@@ -7204,34 +8065,49 @@ end
   }
 \fi
 
-\def\scanmacro#1{\begingroup
+\let\aftermacroxxx\relax
+\def\aftermacro{\aftermacroxxx}
+
+% alias because \c means cedilla in @tex or @math
+\let\texinfoc=\c
+
+\newcount\savedcatcodeone
+\newcount\savedcatcodetwo
+
+% Used at the time of macro expansion.
+% Argument is macro body with arguments substituted
+\def\scanmacro#1{%
   \newlinechar`\^^M
-  \let\xeatspaces\eatspaces
+  \def\xeatspaces{\eatspaces}%
+  %
+  % Temporarily undo catcode changes of \printindex.  Set catcode of @ to
+  % 0 so that @-commands in macro expansions aren't printed literally when 
+  % formatting an index file, where \ is used as the escape character.
+  \savedcatcodeone=\catcode`\@
+  \savedcatcodetwo=\catcode`\\
+  \catcode`\@=0
+  \catcode`\\=\active
   %
-  % Undo catcode changes of \startcontents and \doprintindex
-  % When called from @insertcopying or (short)caption, we need active
-  % backslash to get it printed correctly.  Previously, we had
-  % \catcode`\\=\other instead.  We'll see whether a problem appears
-  % with macro expansion.                              --kasal, 19aug04
-  \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+  % Process the macro body under the current catcode regime.
+  \scantokens{#1@texinfoc}\aftermacro%
   %
-  % ... and for \example:
-  \spaceisspace
+  \catcode`\@=\savedcatcodeone
+  \catcode`\\=\savedcatcodetwo
   %
-  % The \empty here causes a following catcode 5 newline to be eaten as
-  % part of reading whitespace after a control sequence.  It does not
-  % eat a catcode 13 newline.  There's no good way to handle the two
-  % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
-  % would then have different behavior).  See the Macro Details node in
-  % the manual for the workaround we recommend for macros and
-  % line-oriented commands.
-  % 
-  \scantokens{#1\empty}%
-\endgroup}
+  % The \texinfoc is to remove the \newlinechar added by \scantokens, and
+  % can be noticed by \parsearg.
+  %   The \aftermacro allows a \comment at the end of the macro definition
+  % to duplicate itself past the final \newlinechar added by \scantokens:
+  % this is used in the definition of \group to comment out a newline.  We
+  % don't do the same for \c to support Texinfo files with macros that ended
+  % with a @c, which should no longer be necessary.
+  %   We avoid surrounding the call to \scantokens with \bgroup and \egroup
+  % to allow macros to open or close groups themselves.
+}
 
+% Used for copying and captions
 \def\scanexp#1{%
-  \edef\temp{\noexpand\scanmacro{#1}}%
-  \temp
+  \expandafter\scanmacro\expandafter{#1}%
 }
 
 \newcount\paramno   % Count of parameters
@@ -7239,7 +8115,7 @@ end
 \newif\ifrecursive  % Is it recursive?
 
 % List of all defined macros in the form
-%    \definedummyword\macro1\definedummyword\macro2...
+%    \commondummyword\macro1\commondummyword\macro2...
 % Currently is also contains all @aliases; the list can be split
 % if there is a need.
 \def\macrolist{}
@@ -7247,7 +8123,7 @@ end
 % Add the macro to \macrolist
 \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
 \def\addtomacrolistxxx#1{%
-     \toks0 = \expandafter{\macrolist\definedummyword#1}%
+     \toks0 = \expandafter{\macrolist\commondummyword#1}%
      \xdef\macrolist{\the\toks0}%
 }
 
@@ -7297,48 +8173,45 @@ end
   \catcode`\+=\other
   \catcode`\<=\other
   \catcode`\>=\other
-  \catcode`\@=\other
   \catcode`\^=\other
   \catcode`\_=\other
   \catcode`\|=\other
   \catcode`\~=\other
-  \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
+  \passthroughcharstrue
 }
 
 \def\scanargctxt{% used for copying and captions, not macros.
   \scanctxt
+  \catcode`\@=\other
   \catcode`\\=\other
   \catcode`\^^M=\other
 }
 
 \def\macrobodyctxt{% used for @macro definitions
   \scanctxt
+  \catcode`\ =\other
+  \catcode`\@=\other
   \catcode`\{=\other
   \catcode`\}=\other
   \catcode`\^^M=\other
   \usembodybackslash
 }
 
-\def\macroargctxt{% used when scanning invocations
+% Used when scanning braced macro arguments.  Note, however, that catcode
+% changes here are ineffectual if the macro invocation was nested inside
+% an argument to another Texinfo command.
+\def\macroargctxt{%
   \scanctxt
-  \catcode`\\=0
+  \catcode`\ =\active
+  \catcode`\^^M=\other
+  \catcode`\\=\active
 }
-% why catcode 0 for \ in the above?  To recognize \\ \{ \} as "escapes"
-% for the single characters \ { }.  Thus, we end up with the "commands"
-% that would be written @\ @{ @} in a Texinfo document.
-% 
-% We already have @{ and @}.  For @\, we define it here, and only for
-% this purpose, to produce a typewriter backslash (so, the @\ that we
-% define for @math can't be used with @macro calls):
-%
-\def\\{\normalbackslash}%
-% 
-% We would like to do this for \, too, since that is what makeinfo does.
-% But it is not possible, because Texinfo already has a command @, for a
-% cedilla accent.  Documents must use @comma{} instead.
-%
-% \anythingelse will almost certainly be an error of some kind.
 
+\def\macrolineargctxt{% used for whole-line arguments without braces
+  \scanctxt
+  \catcode`\{=\other
+  \catcode`\}=\other
+}
 
 % \mbodybackslash is the definition of \ in @macro bodies.
 % It maps \foo\ => \csname macarg.foo\endcsname => #N
@@ -7391,7 +8264,7 @@ end
     % Remove the macro name from \macrolist:
     \begingroup
       \expandafter\let\csname#1\endcsname \relax
-      \let\definedummyword\unmacrodo
+      \let\commondummyword\unmacrodo
       \xdef\macrolist{\macrolist}%
     \endgroup
   \else
@@ -7406,61 +8279,40 @@ end
   \ifx #1\relax
     % remove this
   \else
-    \noexpand\definedummyword \noexpand#1%
+    \noexpand\commondummyword \noexpand#1%
   \fi
 }
 
-% This makes use of the obscure feature that if the last token of a
-% <parameter list> is #, then the preceding argument is delimited by
-% an opening brace, and that opening brace is not consumed.
+% \getargs -- Parse the arguments to a @macro line.  Set \macname to
+% the name of the macro, and \argl to the braced argument list.
 \def\getargs#1{\getargsxxx#1{}}
 \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
 \def\getmacname#1 #2\relax{\macname={#1}}
 \def\getmacargs#1{\def\argl{#1}}
+% This made use of the feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
 
-% For macro processing make @ a letter so that we can make Texinfo private macro names.
-\edef\texiatcatcode{\the\catcode`\@}
-\catcode `@=11\relax
-
-% Parse the optional {params} list.  Set up \paramno and \paramlist
-% so \defmacro knows what to do.  Define \macarg.BLAH for each BLAH
-% in the params list to some hook where the argument si to be expanded.  If
-% there are less than 10 arguments that hook is to be replaced by ##N where N
+% Parse the optional {params} list to @macro or @rmacro.
+% Set \paramno to the number of arguments,
+% and \paramlist to a parameter text for the macro (e.g. #1,#2,#3 for a
+% three-param macro.)  Define \macarg.BLAH for each BLAH in the params
+% list to some hook where the argument is to be expanded.  If there are
+% less than 10 arguments that hook is to be replaced by ##N where N
 % is the position in that list, that is to say the macro arguments are to be
 % defined `a la TeX in the macro body.  
 %
 % That gets used by \mbodybackslash (above).
 %
-% We need to get `macro parameter char #' into several definitions.
-% The technique used is stolen from LaTeX: let \hash be something
-% unexpandable, insert that wherever you need a #, and then redefine
-% it to # just before using the token list produced.
-%
-% The same technique is used to protect \eatspaces till just before
-% the macro is used.
-%
-% If there are 10 or more arguments, a different technique is used, where the
-% hook remains in the body, and when macro is to be expanded the body is
-% processed again to replace the arguments.
-%
-% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
-% argument N value and then \edef  the body (nothing else will expand because of
-% the catcode regime underwhich the body was input).
+% If there are 10 or more arguments, a different technique is used: see
+% \parsemmanyargdef.
 %
-% If you compile with TeX (not eTeX), and you have macros with 10 or more
-% arguments, you need that no macro has more than 256 arguments, otherwise an
-% error is produced.
 \def\parsemargdef#1;{%
   \paramno=0\def\paramlist{}%
   \let\hash\relax
+  % \hash is redefined to `#' later to get it into definitions
   \let\xeatspaces\relax
   \parsemargdefxxx#1,;,%
-  % In case that there are 10 or more arguments we parse again the arguments
-  % list to set new definitions for the \macarg.BLAH macros corresponding to
-  % each BLAH argument. It was anyhow needed to parse already once this list
-  % in order to count the arguments, and as macros with at most 9 arguments
-  % are by far more frequent than macro with 10 or more arguments, defining
-  % twice the \macarg.BLAH macros does not cost too much processing power.
   \ifnum\paramno<10\relax\else
     \paramno0\relax
     \parsemmanyargdef@@#1,;,% 10 or more arguments
@@ -7475,6 +8327,43 @@ end
     \edef\paramlist{\paramlist\hash\the\paramno,}%
   \fi\next}
 
+% \parsemacbody, \parsermacbody
+%
+% Read recursive and nonrecursive macro bodies. (They're different since
+% rec and nonrec macros end differently.)
+% 
+% 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.
+%
+{\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{%
+\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+{\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{%
+\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+
+% Make @ a letter, so that we can make private-to-Texinfo macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
+%%%%%%%%%%%%%% Code for > 10 arguments only   %%%%%%%%%%%%%%%%%%
+
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime under which the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, no macro can have more than 256 arguments (else error).
+%
+% In case that there are 10 or more arguments we parse again the arguments
+% list to set new definitions for the \macarg.BLAH macros corresponding to
+% each BLAH argument. It was anyhow needed to parse already once this list
+% in order to count the arguments, and as macros with at most 9 arguments
+% are by far more frequent than macro with 10 or more arguments, defining
+% twice the \macarg.BLAH macros does not cost too much processing power.
 \def\parsemmanyargdef@@#1,{%
   \if#1;\let\next=\relax
   \else 
@@ -7490,16 +8379,6 @@ end
     \advance\paramno by 1\relax
   \fi\next}
 
-% These two commands read recursive and nonrecursive macro bodies.
-% (They're different since rec and nonrec macros end differently.)
-%
-
-\catcode `\@\texiatcatcode
-\long\def\parsemacbody#1@end macro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\long\def\parsermacbody#1@end rmacro%
-{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
-\catcode `\@=11\relax
 
 \let\endargs@\relax
 \let\nil@\relax
@@ -7507,7 +8386,7 @@ end
 \long\def\nillm@{\nil@}%
 
 % This macro is expanded during the Texinfo macro expansion, not during its
-% definition.  It gets all the arguments values and assigns them to macros
+% definition.  It gets all the arguments' values and assigns them to macros
 % macarg.ARGNAME
 %
 % #1 is the macro name
@@ -7528,8 +8407,6 @@ end
     \getargvals@@
   \fi
 }
-
-% 
 \def\getargvals@@{%
   \ifx\paramlist\nilm@
       % Some sanity check needed here that \argvaluelist is also empty.
@@ -7573,7 +8450,8 @@ end
 }
 
 % Replace arguments by their values in the macro body, and place the result
-% in macro \@tempa
+% in macro \@tempa.
+% 
 \def\macvalstoargs@{%
   %  To do this we use the property that token registers that are \the'ed
   % within an \edef  expand only once. So we are going to place all argument
@@ -7597,8 +8475,9 @@ end
   \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
   }
 
+% Define the named-macro outside of this group and then close this group. 
+% 
 \def\macargexpandinbody@{% 
-  %% Define the named-macro outside of this group and then close this group. 
   \expandafter
   \endgroup
   \macargdeflist@
@@ -7635,14 +8514,8 @@ end
   \next
 }
 
-% Save the token stack pointer into macro #1
-\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
-% Restore the token stack pointer from number in macro #1
-\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
-% newtoks that can be used non \outer .
-\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
-
-% Tailing missing arguments are set to empty
+% Trailing missing arguments are set to empty.
+% 
 \def\setemptyargvalues@{%
   \ifx\paramlist\nilm@
     \let\next\macargexpandinbody@
@@ -7672,99 +8545,184 @@ end
    \long\def#2{#4}%
 }
 
-% This defines a Texinfo @macro. There are eight cases: recursive and
-% nonrecursive macros of zero, one, up to nine, and many arguments.
-% Much magic with \expandafter here.
+
+%%%%%%%%%%%%%% End of code for > 10 arguments %%%%%%%%%%%%%%%%%%
+
+
+% This defines a Texinfo @macro or @rmacro, called by \parsemacbody.
+%    \macrobody has the body of the macro in it, with placeholders for
+% its parameters, looking like "\xeatspaces{\hash 1}".
+%    \paramno is the number of parameters
+%    \paramlist is a TeX parameter text, e.g. "#1,#2,#3,"
+% There are four cases: macros of zero, one, up to nine, and many arguments.
 % \xdef is used so that macro definitions will survive the file
-% they're defined in; @include reads the file inside a group.
+% they're defined in: @include reads the file inside a group.
 %
 \def\defmacro{%
   \let\hash=##% convert placeholders to macro parameter chars
-  \ifrecursive
-    \ifcase\paramno
-    % 0
-      \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\scanmacro{\temp}}%
-    \or % 1
-      \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline
-         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-         \egroup\noexpand\scanmacro{\temp}}%
-    \else
-      \ifnum\paramno<10\relax % at most 9
-        \expandafter\xdef\csname\the\macname\endcsname{%
-           \bgroup\noexpand\macroargctxt
-           \noexpand\csname\the\macname xx\endcsname}%
-        \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-            \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
-        \expandafter\expandafter
-        \expandafter\xdef
-        \expandafter\expandafter
-          \csname\the\macname xxx\endcsname
-            \paramlist{\egroup\noexpand\scanmacro{\temp}}%
-      \else % 10 or more
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \noexpand\getargvals@{\the\macname}{\argl}%
-        }%    
-        \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
-        \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
-      \fi
-    \fi
+  \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.
   \else
-    \ifcase\paramno
-    % 0
+    \let\xeatspaces\relax % suppress expansion
+  \fi
+  \ifcase\paramno
+  % 0
+    \expandafter\xdef\csname\the\macname\endcsname{%
+      \noexpand\scanmacro{\macrobody}}%
+  \or % 1
+    \expandafter\xdef\csname\the\macname\endcsname{%
+       \bgroup
+       \noexpand\braceorline
+       \expandafter\noexpand\csname\the\macname @@@\endcsname}%
+    \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+      \egroup
+      \noexpand\scanmacro{\macrobody}%
+      }%
+  \else % at most 9
+    \ifnum\paramno<10\relax
+      % @MACNAME sets the context for reading the macro argument
+      % @MACNAME@@ gets the argument, processes backslashes and appends a 
+      % comma.
+      % @MACNAME@@@ removes braces surrounding the argument list.
+      % @MACNAME@@@@ scans the macro body with arguments substituted.
       \expandafter\xdef\csname\the\macname\endcsname{%
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \or % 1
+        \bgroup
+        \noexpand\expandafter  % This \expandafter skip any spaces after the
+        \noexpand\macroargctxt % macro before we change the catcode of space.
+        \noexpand\expandafter
+        \expandafter\noexpand\csname\the\macname @@\endcsname}%
+      \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+          \noexpand\passargtomacro
+          \expandafter\noexpand\csname\the\macname @@@\endcsname{##1,}}%
+      \expandafter\xdef\csname\the\macname @@@\endcsname##1{%
+          \expandafter\noexpand\csname\the\macname @@@@\endcsname ##1}%
+      \expandafter\expandafter
+      \expandafter\xdef
+      \expandafter\expandafter
+        \csname\the\macname @@@@\endcsname\paramlist{%
+          \egroup\noexpand\scanmacro{\macrobody}}%
+    \else % 10 or more:
       \expandafter\xdef\csname\the\macname\endcsname{%
-         \bgroup\noexpand\macroargctxt
-         \noexpand\braceorline
-         \expandafter\noexpand\csname\the\macname xxx\endcsname}%
-      \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
-        \egroup
-        \noexpand\norecurse{\the\macname}%
-        \noexpand\scanmacro{\temp}\egroup}%
-    \else % at most 9
-      \ifnum\paramno<10\relax
-        \expandafter\xdef\csname\the\macname\endcsname{%
-           \bgroup\noexpand\macroargctxt
-           \expandafter\noexpand\csname\the\macname xx\endcsname}%
-        \expandafter\xdef\csname\the\macname xx\endcsname##1{%
-            \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
-        \expandafter\expandafter
-        \expandafter\xdef
-        \expandafter\expandafter
-        \csname\the\macname xxx\endcsname
-        \paramlist{%
-            \egroup
-            \noexpand\norecurse{\the\macname}%
-            \noexpand\scanmacro{\temp}\egroup}%
-      \else % 10 or more:
-        \expandafter\xdef\csname\the\macname\endcsname{%
-          \noexpand\getargvals@{\the\macname}{\argl}%
-        }%
-        \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
-        \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
-      \fi
+        \noexpand\getargvals@{\the\macname}{\argl}%
+      }%
+      \global\expandafter\let\csname mac.\the\macname .body\endcsname\macrobody
+      \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
     \fi
   \fi}
 
-\catcode `\@\texiatcatcode\relax
+\catcode `\@\texiatcatcode\relax % end private-to-Texinfo catcodes
 
 \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
 
-% \braceorline decides whether the next nonwhitespace character is a
-% {.  If so it reads up to the closing }, if not, it reads the whole
-% line.  Whatever was read is then fed to the next control sequence
-% as an argument (by \parsebrace or \parsearg).
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+{\catcode`\@=0 \catcode`\\=13  % We need to manipulate \ so use @ as escape
+@catcode`@_=11  % private names
+@catcode`@!=11  % used as argument separator
+
+% \passargtomacro#1#2 -
+% Call #1 with a list of tokens #2, with any doubled backslashes in #2
+% compressed to one.
+%
+% This implementation works by expansion, and not execution (so we cannot use 
+% \def or similar).  This reduces the risk of this failing in contexts where 
+% complete expansion is done with no execution (for example, in writing out to 
+% an auxiliary file for an index entry).
+% 
+% State is kept in the input stream: the argument passed to
+% @look_ahead, @gobble_and_check_finish and @add_segment is
+%
+% THE_MACRO ARG_RESULT ! {PENDING_BS} NEXT_TOKEN  (... rest of input)
+%
+% where:
+% THE_MACRO - name of the macro we want to call
+% ARG_RESULT - argument list we build to pass to that macro
+% PENDING_BS - either a backslash or nothing
+% NEXT_TOKEN - used to look ahead in the input stream to see what's coming next
+
+@gdef@passargtomacro#1#2{%
+  @add_segment #1!{}@relax#2\@_finish\%
+}
+@gdef@_finish{@_finishx} @global@let@_finishx@relax
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 used to look ahead
+%
+% If the next token is not a backslash, process the rest of the argument; 
+% otherwise, remove the next token.
+@gdef@look_ahead#1!#2#3#4{%
+  @ifx#4\%
+   @expandafter@gobble_and_check_finish 
+  @else
+   @expandafter@add_segment
+  @fi#1!{#2}#4#4%
+}
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 should be a backslash, which is gobbled.
+% #5 looks ahead
+%
+% Double backslash found.  Add a single backslash, and look ahead.
+@gdef@gobble_and_check_finish#1!#2#3#4#5{%
+  @add_segment#1\!{}#5#5%
+}
+
+@gdef@is_fi{@fi}
+
+% #1 - THE_MACRO ARG_RESULT
+% #2 - PENDING_BS
+% #3 - NEXT_TOKEN
+% #4 is input stream until next backslash
+%
+% Input stream is either at the start of the argument, or just after a 
+% backslash sequence, either a lone backslash, or a doubled backslash.  
+% NEXT_TOKEN contains the first token in the input stream: if it is \finish, 
+% finish; otherwise, append to ARG_RESULT the segment of the argument up until
+% the next backslash.  PENDING_BACKSLASH contains a backslash to represent
+% a backslash just before the start of the input stream that has not been
+% added to ARG_RESULT.
+@gdef@add_segment#1!#2#3#4\{%
+@ifx#3@_finish
+  @call_the_macro#1!%
+@else
+  % append the pending backslash to the result, followed by the next segment
+  @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
+  % this @fi is discarded by @look_ahead.
+  % we can't get rid of it with \expandafter because we don't know how 
+  % long #4 is.
+}
+
+% #1 - THE_MACRO
+% #2 - ARG_RESULT
+% #3 discards the res of the conditional in @add_segment, and @is_fi ends the 
+% conditional.
+@gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
+
+}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% \braceorline MAC is used for a one-argument macro MAC.  It checks
+% whether the next non-whitespace character is a {.  It sets the context
+% for reading the argument (slightly different in the two cases).  Then,
+% to read the argument, in the whole-line case, it then calls the regular
+% \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
 % 
 \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
 \def\braceorlinexxx{%
-  \ifx\nchar\bgroup\else
-    \expandafter\parsearg
+  \ifx\nchar\bgroup
+    \macroargctxt
+    \expandafter\passargtomacro
+  \else
+    \macrolineargctxt\expandafter\parsearg
   \fi \macnamexxx}
 
 
@@ -7846,7 +8804,10 @@ end
   \pdfmkdest{#1}%
   \iflinks
     {%
+      \requireauxfile
       \atdummies  % preserve commands, but don't expand them
+      % match definition in \xrdef, \refx, \xrefX.
+      \def\value##1{##1}%
       \edef\writexrdef##1##2{%
        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
          ##1}{##2}}% these are parameters of \writexrdef
@@ -7885,9 +8846,12 @@ end
 % node name, #4 the name of the Info file, #5 the name of the printed
 % manual.  All but the node name can be omitted.
 %
-\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
-\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
-\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\pxref{\putwordsee{} \xrefXX}
+\def\xref{\putwordSee{} \xrefXX}
+\def\ref{\xrefXX}
+
+\def\xrefXX#1{\def\xrefXXarg{#1}\futurelet\tokenafterxref\xrefXXX}
+\def\xrefXXX{\expandafter\xrefX\expandafter[\xrefXXarg,,,,,,,]}
 %
 \newbox\toprefbox
 \newbox\printedrefnamebox
@@ -7934,9 +8898,10 @@ end
   %
   % Make link in pdf output.
   \ifpdf
+    % For pdfTeX and LuaTeX
     {\indexnofonts
-     \turnoffactive
      \makevalueexpandable
+     \turnoffactive
      % This expands tokens, so do it after making catcode changes, so _
      % etc. don't get their TeX definitions.  This ignores all spaces in
      % #4, including (wrongly) those in the middle of the filename.
@@ -7944,7 +8909,23 @@ end
      %
      % This (wrongly) does not take account of leading or trailing
      % spaces in #1, which should be ignored.
-     \edef\pdfxrefdest{#1}%
+     \iftxiuseunicodedestname
+       \ifx \declaredencoding \latone
+         % Pass through Latin-1 characters.
+       \else
+         \ifx \declaredencoding \utfeight
+           % Pass through Unicode characters.
+         \else
+           % Use ASCII approximations in destination names.
+           \passthroughcharsfalse
+         \fi
+       \fi
+     \else
+       % Use ASCII approximations in destination names.
+       \passthroughcharsfalse
+     \fi
+     \def\pdfxrefdest{#1}%
+     %
      \ifx\pdfxrefdest\empty
        \def\pdfxrefdest{Top}% no empty targets
      \else
@@ -7960,19 +8941,67 @@ end
      \fi
     }%
     \setcolor{\linkcolor}%
+  \else
+    \ifx\XeTeXrevision\thisisundefined
+    \else
+      % For XeTeX
+      {\indexnofonts
+       \makevalueexpandable
+       \turnoffactive
+       % This expands tokens, so do it after making catcode changes, so _
+       % etc. don't get their TeX definitions.  This ignores all spaces in
+       % #4, including (wrongly) those in the middle of the filename.
+       \getfilename{#4}%
+       %
+       % This (wrongly) does not take account of leading or trailing
+       % spaces in #1, which should be ignored.
+       \iftxiuseunicodedestname
+         % Pass through Unicode characters.
+       \else
+         % Use ASCII approximations in destination names.
+         \passthroughcharsfalse
+       \fi
+       \def\pdfxrefdest{#1}%
+       %
+       \ifx\pdfxrefdest\empty
+         \def\pdfxrefdest{Top}% no empty targets
+       \else
+         \txiescapepdf\pdfxrefdest  % escape PDF special chars
+       \fi
+       %
+       \leavevmode
+       \ifnum\filenamelength>0
+         % With default settings,
+         % XeTeX (xdvipdfmx) replaces link destination names with integers.
+         % In this case, the replaced destination names of
+         % remote PDFs are no longer known.  In order to avoid a replacement,
+         % you can use xdvipdfmx's command line option `-C 0x0010'.
+         % If you use XeTeX 0.99996+ (TeX Live 2016+),
+         % this command line option is no longer necessary
+         % because we can use the `dvipdfmx:config' special.
+         \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
+           << /S /GoToR /F (\the\filename.pdf) /D (\pdfxrefdest) >> >>}%
+       \else
+         \special{pdf:bann << /Border [0 0 0] /Type /Annot /Subtype /Link /A
+           << /S /GoTo /D (\pdfxrefdest) >> >>}%
+       \fi
+      }%
+      \setcolor{\linkcolor}%
+    \fi
   \fi
-  %
-  % Float references are printed completely differently: "Figure 1.2"
-  % instead of "[somenode], p.3".  We distinguish them by the
-  % LABEL-title being set to a magic string.
   {%
     % Have to otherify everything special to allow the \csname to
     % include an _ in the xref name, etc.
     \indexnofonts
     \turnoffactive
+    \def\value##1{##1}%
     \expandafter\global\expandafter\let\expandafter\Xthisreftitle
       \csname XR#1-title\endcsname
   }%
+  %
+  % Float references are printed completely differently: "Figure 1.2"
+  % instead of "[somenode], p.3".  \iffloat distinguishes them by
+  % \Xthisreftitle being set to a magic string.
   \iffloat\Xthisreftitle
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
@@ -8031,6 +9060,15 @@ end
       %
       % output the `page 3'.
       \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+      % Add a , if xref followed by a space
+      \if\space\noexpand\tokenafterxref ,%
+      \else\ifx\       \tokenafterxref ,% @TAB
+      \else\ifx\*\tokenafterxref ,%   @*
+      \else\ifx\ \tokenafterxref ,%   @SPACE
+      \else\ifx\
+                \tokenafterxref ,%    @NL
+      \else\ifx\tie\tokenafterxref ,% @tie
+      \fi\fi\fi\fi\fi\fi
     \fi\fi
   \fi
   \endlink
@@ -8097,13 +9135,14 @@ end
   \fi\fi\fi
 }
 
-% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
-% If its value is nonempty, SUFFIX is output afterward.
-%
+% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME.  SUFFIX 
+% is output afterwards if non-empty.
 \def\refx#1#2{%
+  \requireauxfile
   {%
     \indexnofonts
     \otherbackslash
+    \def\value##1{##1}%
     \expandafter\global\expandafter\let\expandafter\thisrefX
       \csname XR#1\endcsname
   }%
@@ -8128,16 +9167,18 @@ end
   #2% Output the suffix in any case.
 }
 
-% This is the macro invoked by entries in the aux file.  Usually it's
-% just a \def (we prepend XR to the control sequence name to avoid
-% collisions).  But if this is a float type, we have more work to do.
+% This is the macro invoked by entries in the aux file.  Define a control 
+% sequence for a cross-reference target (we prepend XR to the control sequence 
+% name to avoid collisions).  The value is the page number.  If this is a float 
+% type, we have more work to do.
 %
 \def\xrdef#1#2{%
-  {% The node name might contain 8-bit characters, which in our current
-   % implementation are changed to commands like @'e.  Don't let these
-   % mess up the control sequence name.
+  {% Expand the node or anchor name to remove control sequences.
+   % \turnoffactive stops 8-bit characters being changed to commands
+   % like @'e.  \refx does the same to retrieve the value in the definition.
     \indexnofonts
     \turnoffactive
+    \def\value##1{##1}%
     \xdef\safexrefname{#1}%
   }%
   %
@@ -8164,6 +9205,23 @@ end
   \fi
 }
 
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate at the beginning of the file.
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% Used when writing to the aux file, or when using data from it.
+\def\requireauxfile{%
+  \iflinks
+    \tryauxfile
+    % Open the new aux file.  TeX will close it automatically at exit.
+    \immediate\openout\auxfile=\jobname.aux
+  \fi
+  \global\let\requireauxfile=\relax   % Only do this once.
+}
+
 % Read the last existing aux file, if any.  No error if none exists.
 %
 \def\tryauxfile{%
@@ -8242,16 +9300,6 @@ end
   % now.  --karl, 15jan04.
   \catcode`\\=\other
   %
-  % Make the characters 128-255 be printing characters.
-  {%
-    \count1=128
-    \def\loop{%
-      \catcode\count1=\other
-      \advance\count1 by 1
-      \ifnum \count1<256 \loop \fi
-    }%
-  }%
-  %
   % @ is our escape character in .aux files, and we need braces.
   \catcode`\{=1
   \catcode`\}=2
@@ -8284,8 +9332,6 @@ end
 %
 % Auto-number footnotes.  Otherwise like plain.
 \gdef\footnote{%
-  \let\indent=\ptexindent
-  \let\noindent=\ptexnoindent
   \global\advance\footnoteno by \@ne
   \edef\thisfootno{$^{\the\footnoteno}$}%
   %
@@ -8309,10 +9355,15 @@ end
 %
 \gdef\dofootnote{%
   \insert\footins\bgroup
+  %
+  % Nested footnotes are not supported in TeX, that would take a lot
+  % more work.  (\startsavinginserts does not suffice.)
+  \let\footnote=\errfootnotenest
+  %
   % We want to typeset this text as a normal paragraph, even if the
   % footnote reference occurs in (for example) a display environment.
   % So reset some parameters.
-  \hsize=\pagewidth
+  \hsize=\txipagewidth
   \interlinepenalty\interfootnotelinepenalty
   \splittopskip\ht\strutbox % top baseline for broken footnotes
   \splitmaxdepth\dp\strutbox
@@ -8346,13 +9397,24 @@ end
 }
 }%end \catcode `\@=11
 
+\def\errfootnotenest{%
+  \errhelp=\EMsimple
+  \errmessage{Nested footnotes not supported in texinfo.tex,
+    even though they work in makeinfo; sorry}
+}
+
+\def\errfootnoteheading{%
+  \errhelp=\EMsimple
+  \errmessage{Footnotes in chapters, sections, etc., are not supported}
+}
+
 % In case a @footnote appears in a vbox, save the footnote text and create
 % the real \insert just after the vbox finished.  Otherwise, the insertion
 % would be lost.
 % Similarly, if a @footnote appears inside an alignment, save the footnote
 % text to a box and make the \insert when a row of the table is finished.
 % And the same can be done for other insert classes.  --kasal, 16nov03.
-
+%
 % Replace the \insert primitive by a cheating macro.
 % Deeper inside, just make sure that the saved insertions are not spilled
 % out prematurely.
@@ -8450,6 +9512,7 @@ end
 \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
   \catcode`\^^M = 5     % in case we're inside an example
   \normalturnoffactive  % allow _ et al. in names
+  \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro
   % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
@@ -8479,12 +9542,21 @@ end
   %
   % Output the image.
   \ifpdf
+    % For pdfTeX and LuaTeX <= 0.80
     \dopdfimage{#1}{#2}{#3}%
   \else
-    % \epsfbox itself resets \epsf?size at each figure.
-    \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
-    \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
-    \epsfbox{#1.eps}%
+    \ifx\XeTeXrevision\thisisundefined
+      % For epsf.tex
+      % \epsfbox itself resets \epsf?size at each figure.
+      \setbox0 = \hbox{\ignorespaces #2}%
+        \ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+      \setbox0 = \hbox{\ignorespaces #3}%
+        \ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+      \epsfbox{#1.eps}%
+    \else
+      % For XeTeX
+      \doxeteximage{#1}{#2}{#3}%
+    \fi
   \fi
   %
   \ifimagevmode
@@ -8606,7 +9678,7 @@ end
     %
     \ifx\thiscaption\empty \else
       \ifx\floatident\empty \else
-       \appendtomacro\captionline{: }% had ident, so need a colon between
+        \appendtomacro\captionline{: }% had ident, so need a colon between
       \fi
       %
       % caption text.
@@ -8630,32 +9702,20 @@ end
       % \floatlabel-lof.  Besides \floatident, we include the short
       % caption if specified, else the full caption if specified, else nothing.
       {%
+        \requireauxfile
         \atdummies
         %
-        % since we read the caption text in the macro world, where ^^M
-        % is turned into a normal character, we have to scan it back, so
-        % we don't write the literal three characters "^^M" into the aux file.
-       \scanexp{%
-         \xdef\noexpand\gtemp{%
-           \ifx\thisshortcaption\empty
-             \thiscaption
-           \else
-             \thisshortcaption
-           \fi
-         }%
-       }%
+        \ifx\thisshortcaption\empty
+          \def\gtemp{\thiscaption}%
+        \else
+          \def\gtemp{\thisshortcaption}%
+        \fi
         \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
-         \ifx\gtemp\empty \else : \gtemp \fi}}%
+          \ifx\gtemp\empty \else : \gtemp \fi}}%
       }%
     \fi
   \egroup  % end of \vtop
   %
-  % place the captured inserts
-  %
-  % BEWARE: when the floats start floating, we have to issue warning
-  % whenever an insert appears inside a float which could possibly
-  % float. --kasal, 26may04
-  %
   \checkinserts
 }
 
@@ -8769,20 +9829,20 @@ end
 {
   \catcode`\_ = \active
   \globaldefs=1
-\parseargdef\documentlanguage{\begingroup
-  \let_=\normalunderscore  % normal _ character for filenames
+\parseargdef\documentlanguage{%
   \tex % read txi-??.tex file in plain TeX.
     % Read the file by the name they passed if it exists.
+    \let_ = \normalunderscore  % normal _ character for filename test
     \openin 1 txi-#1.tex
     \ifeof 1
-      \documentlanguagetrywithoutunderscore{#1_\finish}%
+      \documentlanguagetrywithoutunderscore #1_\finish
     \else
       \globaldefs = 1  % everything in the txi-LL files needs to persist
       \input txi-#1.tex
     \fi
     \closein 1
   \endgroup % end raw TeX
-\endgroup}
+}
 %
 % If they passed de_DE, and txi-de_DE.tex doesn't exist,
 % try txi-de.tex.
@@ -8830,6 +9890,70 @@ directory should work if nowhere else does.}
   \global\righthyphenmin = #3\relax
 }
 
+% XeTeX and LuaTeX can handle Unicode natively.
+% Their default I/O uses UTF-8 sequences instead of a byte-wise operation.
+% Other TeX engines' I/O (pdfTeX, etc.) is byte-wise.
+%
+\newif\iftxinativeunicodecapable
+\newif\iftxiusebytewiseio
+
+\ifx\XeTeXrevision\thisisundefined
+  \ifx\luatexversion\thisisundefined
+    \txinativeunicodecapablefalse
+    \txiusebytewiseiotrue
+  \else
+    \txinativeunicodecapabletrue
+    \txiusebytewiseiofalse
+  \fi
+\else
+  \txinativeunicodecapabletrue
+  \txiusebytewiseiofalse
+\fi
+
+% Set I/O by bytes instead of UTF-8 sequence for XeTeX and LuaTex
+% for non-UTF-8 (byte-wise) encodings.
+%
+\def\setbytewiseio{%
+  \ifx\XeTeXrevision\thisisundefined
+  \else
+    \XeTeXdefaultencoding "bytes"  % For subsequent files to be read
+    \XeTeXinputencoding "bytes"  % For document root file
+    % Unfortunately, there seems to be no corresponding XeTeX command for
+    % output encoding.  This is a problem for auxiliary index and TOC files.
+    % The only solution would be perhaps to write out @U{...} sequences in
+    % place of non-ASCII characters.
+  \fi
+
+  \ifx\luatexversion\thisisundefined
+  \else
+    \directlua{
+    local utf8_char, byte, gsub = unicode.utf8.char, string.byte, string.gsub
+    local function convert_char (char)
+      return utf8_char(byte(char))
+    end
+
+    local function convert_line (line)
+      return gsub(line, ".", convert_char)
+    end
+
+    callback.register("process_input_buffer", convert_line)
+
+    local function convert_line_out (line)
+      local line_out = ""
+      for c in string.utfvalues(line) do
+         line_out = line_out .. string.char(c)
+      end
+      return line_out
+    end
+
+    callback.register("process_output_buffer", convert_line_out)
+    }
+  \fi
+
+  \txiusebytewiseiotrue
+}
+
+
 % Helpers for encodings.
 % Set the catcode of characters 128 through 255 to the specified number.
 %
@@ -8852,7 +9976,9 @@ directory should work if nowhere else does.}
 % @documentencoding sets the definition of non-ASCII characters
 % according to the specified encoding.
 %
-\parseargdef\documentencoding{%
+\def\documentencoding{\parseargusing\filenamecatcodes\documentencodingzzz}
+\def\documentencodingzzz#1{%
+  %
   % Encoding being declared for the document.
   \def\declaredencoding{\csname #1.enc\endcsname}%
   %
@@ -8868,35 +9994,66 @@ directory should work if nowhere else does.}
      \asciichardefs
   %
   \else \ifx \declaredencoding \lattwo
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \lattwochardefs
   %
   \else \ifx \declaredencoding \latone
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \latonechardefs
   %
   \else \ifx \declaredencoding \latnine
+     \iftxinativeunicodecapable
+       \setbytewiseio
+     \fi
      \setnonasciicharscatcode\active
      \latninechardefs
   %
   \else \ifx \declaredencoding \utfeight
-     \setnonasciicharscatcode\active
-     \utfeightchardefs
+     \iftxinativeunicodecapable
+       % For native Unicode handling (XeTeX and LuaTeX)
+       \nativeunicodechardefs
+     \else
+       % For treating UTF-8 as byte sequences (TeX, eTeX and pdfTeX)
+       \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
-    \message{Unknown document encoding #1, ignoring.}%
+    \message{Ignoring unknown document encoding: #1.}%
   %
   \fi % utfeight
   \fi % latnine
   \fi % latone
   \fi % lattwo
   \fi % ascii
+  %
+  \ifx\XeTeXrevision\thisisundefined
+  \else
+    \ifx \declaredencoding \utfeight
+    \else
+      \ifx \declaredencoding \ascii
+      \else
+        \message{Warning: XeTeX with non-UTF-8 encodings cannot handle %
+        non-ASCII characters in auxiliary files.}%
+      \fi
+    \fi
+  \fi
 }
 
+% emacs-page
 % A message to be logged when using a character that isn't available
 % the default font encoding (OT1).
 %
-\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+\def\missingcharmsg#1{\message{Character missing, sorry: #1.}}
 
 % Take account of \c (plain) vs. \, (Texinfo) difference.
 \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
@@ -8906,111 +10063,119 @@ directory should work if nowhere else does.}
 % macros containing the character definitions.
 \setnonasciicharscatcode\active
 %
+
+\def\gdefchar#1#2{%
+\gdef#1{%
+   \ifpassthroughchars
+     \string#1%
+   \else
+     #2%
+   \fi
+}}
+
 % Latin1 (ISO-8859-1) character definitions.
 \def\latonechardefs{%
-  \gdef^^a0{\tie}
-  \gdef^^a1{\exclamdown}
-  \gdef^^a2{\missingcharmsg{CENT SIGN}}
-  \gdef^^a3{{\pounds}}
-  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
-  \gdef^^a5{\missingcharmsg{YEN SIGN}}
-  \gdef^^a6{\missingcharmsg{BROKEN BAR}}
-  \gdef^^a7{\S}
-  \gdef^^a8{\"{}}
-  \gdef^^a9{\copyright}
-  \gdef^^aa{\ordf}
-  \gdef^^ab{\guillemetleft}
-  \gdef^^ac{$\lnot$}
-  \gdef^^ad{\-}
-  \gdef^^ae{\registeredsymbol}
-  \gdef^^af{\={}}
-  %
-  \gdef^^b0{\textdegree}
-  \gdef^^b1{$\pm$}
-  \gdef^^b2{$^2$}
-  \gdef^^b3{$^3$}
-  \gdef^^b4{\'{}}
-  \gdef^^b5{$\mu$}
-  \gdef^^b6{\P}
-  %
-  \gdef^^b7{$^.$}
-  \gdef^^b8{\cedilla\ }
-  \gdef^^b9{$^1$}
-  \gdef^^ba{\ordm}
-  %
-  \gdef^^bb{\guillemetright}
-  \gdef^^bc{$1\over4$}
-  \gdef^^bd{$1\over2$}
-  \gdef^^be{$3\over4$}
-  \gdef^^bf{\questiondown}
-  %
-  \gdef^^c0{\`A}
-  \gdef^^c1{\'A}
-  \gdef^^c2{\^A}
-  \gdef^^c3{\~A}
-  \gdef^^c4{\"A}
-  \gdef^^c5{\ringaccent A}
-  \gdef^^c6{\AE}
-  \gdef^^c7{\cedilla C}
-  \gdef^^c8{\`E}
-  \gdef^^c9{\'E}
-  \gdef^^ca{\^E}
-  \gdef^^cb{\"E}
-  \gdef^^cc{\`I}
-  \gdef^^cd{\'I}
-  \gdef^^ce{\^I}
-  \gdef^^cf{\"I}
-  %
-  \gdef^^d0{\DH}
-  \gdef^^d1{\~N}
-  \gdef^^d2{\`O}
-  \gdef^^d3{\'O}
-  \gdef^^d4{\^O}
-  \gdef^^d5{\~O}
-  \gdef^^d6{\"O}
-  \gdef^^d7{$\times$}
-  \gdef^^d8{\O}
-  \gdef^^d9{\`U}
-  \gdef^^da{\'U}
-  \gdef^^db{\^U}
-  \gdef^^dc{\"U}
-  \gdef^^dd{\'Y}
-  \gdef^^de{\TH}
-  \gdef^^df{\ss}
-  %
-  \gdef^^e0{\`a}
-  \gdef^^e1{\'a}
-  \gdef^^e2{\^a}
-  \gdef^^e3{\~a}
-  \gdef^^e4{\"a}
-  \gdef^^e5{\ringaccent a}
-  \gdef^^e6{\ae}
-  \gdef^^e7{\cedilla c}
-  \gdef^^e8{\`e}
-  \gdef^^e9{\'e}
-  \gdef^^ea{\^e}
-  \gdef^^eb{\"e}
-  \gdef^^ec{\`{\dotless i}}
-  \gdef^^ed{\'{\dotless i}}
-  \gdef^^ee{\^{\dotless i}}
-  \gdef^^ef{\"{\dotless i}}
-  %
-  \gdef^^f0{\dh}
-  \gdef^^f1{\~n}
-  \gdef^^f2{\`o}
-  \gdef^^f3{\'o}
-  \gdef^^f4{\^o}
-  \gdef^^f5{\~o}
-  \gdef^^f6{\"o}
-  \gdef^^f7{$\div$}
-  \gdef^^f8{\o}
-  \gdef^^f9{\`u}
-  \gdef^^fa{\'u}
-  \gdef^^fb{\^u}
-  \gdef^^fc{\"u}
-  \gdef^^fd{\'y}
-  \gdef^^fe{\th}
-  \gdef^^ff{\"y}
+  \gdefchar^^a0{\tie}
+  \gdefchar^^a1{\exclamdown}
+  \gdefchar^^a2{{\tcfont \char162}} % cent
+  \gdefchar^^a3{\pounds}
+  \gdefchar^^a4{{\tcfont \char164}} % currency
+  \gdefchar^^a5{{\tcfont \char165}} % yen
+  \gdefchar^^a6{{\tcfont \char166}} % broken bar
+  \gdefchar^^a7{\S}
+  \gdefchar^^a8{\"{}}
+  \gdefchar^^a9{\copyright}
+  \gdefchar^^aa{\ordf}
+  \gdefchar^^ab{\guillemetleft}
+  \gdefchar^^ac{\ensuremath\lnot}
+  \gdefchar^^ad{\-}
+  \gdefchar^^ae{\registeredsymbol}
+  \gdefchar^^af{\={}}
+  %
+  \gdefchar^^b0{\textdegree}
+  \gdefchar^^b1{$\pm$}
+  \gdefchar^^b2{$^2$}
+  \gdefchar^^b3{$^3$}
+  \gdefchar^^b4{\'{}}
+  \gdefchar^^b5{$\mu$}
+  \gdefchar^^b6{\P}
+  \gdefchar^^b7{\ensuremath\cdot}
+  \gdefchar^^b8{\cedilla\ }
+  \gdefchar^^b9{$^1$}
+  \gdefchar^^ba{\ordm}
+  \gdefchar^^bb{\guillemetright}
+  \gdefchar^^bc{$1\over4$}
+  \gdefchar^^bd{$1\over2$}
+  \gdefchar^^be{$3\over4$}
+  \gdefchar^^bf{\questiondown}
+  %
+  \gdefchar^^c0{\`A}
+  \gdefchar^^c1{\'A}
+  \gdefchar^^c2{\^A}
+  \gdefchar^^c3{\~A}
+  \gdefchar^^c4{\"A}
+  \gdefchar^^c5{\ringaccent A}
+  \gdefchar^^c6{\AE}
+  \gdefchar^^c7{\cedilla C}
+  \gdefchar^^c8{\`E}
+  \gdefchar^^c9{\'E}
+  \gdefchar^^ca{\^E}
+  \gdefchar^^cb{\"E}
+  \gdefchar^^cc{\`I}
+  \gdefchar^^cd{\'I}
+  \gdefchar^^ce{\^I}
+  \gdefchar^^cf{\"I}
+  %
+  \gdefchar^^d0{\DH}
+  \gdefchar^^d1{\~N}
+  \gdefchar^^d2{\`O}
+  \gdefchar^^d3{\'O}
+  \gdefchar^^d4{\^O}
+  \gdefchar^^d5{\~O}
+  \gdefchar^^d6{\"O}
+  \gdefchar^^d7{$\times$}
+  \gdefchar^^d8{\O}
+  \gdefchar^^d9{\`U}
+  \gdefchar^^da{\'U}
+  \gdefchar^^db{\^U}
+  \gdefchar^^dc{\"U}
+  \gdefchar^^dd{\'Y}
+  \gdefchar^^de{\TH}
+  \gdefchar^^df{\ss}
+  %
+  \gdefchar^^e0{\`a}
+  \gdefchar^^e1{\'a}
+  \gdefchar^^e2{\^a}
+  \gdefchar^^e3{\~a}
+  \gdefchar^^e4{\"a}
+  \gdefchar^^e5{\ringaccent a}
+  \gdefchar^^e6{\ae}
+  \gdefchar^^e7{\cedilla c}
+  \gdefchar^^e8{\`e}
+  \gdefchar^^e9{\'e}
+  \gdefchar^^ea{\^e}
+  \gdefchar^^eb{\"e}
+  \gdefchar^^ec{\`{\dotless i}}
+  \gdefchar^^ed{\'{\dotless i}}
+  \gdefchar^^ee{\^{\dotless i}}
+  \gdefchar^^ef{\"{\dotless i}}
+  %
+  \gdefchar^^f0{\dh}
+  \gdefchar^^f1{\~n}
+  \gdefchar^^f2{\`o}
+  \gdefchar^^f3{\'o}
+  \gdefchar^^f4{\^o}
+  \gdefchar^^f5{\~o}
+  \gdefchar^^f6{\"o}
+  \gdefchar^^f7{$\div$}
+  \gdefchar^^f8{\o}
+  \gdefchar^^f9{\`u}
+  \gdefchar^^fa{\'u}
+  \gdefchar^^fb{\^u}
+  \gdefchar^^fc{\"u}
+  \gdefchar^^fd{\'y}
+  \gdefchar^^fe{\th}
+  \gdefchar^^ff{\"y}
 }
 
 % Latin9 (ISO-8859-15) encoding character definitions.
@@ -9018,119 +10183,119 @@ directory should work if nowhere else does.}
   % Encoding is almost identical to Latin1.
   \latonechardefs
   %
-  \gdef^^a4{\euro}
-  \gdef^^a6{\v S}
-  \gdef^^a8{\v s}
-  \gdef^^b4{\v Z}
-  \gdef^^b8{\v z}
-  \gdef^^bc{\OE}
-  \gdef^^bd{\oe}
-  \gdef^^be{\"Y}
+  \gdefchar^^a4{\euro}
+  \gdefchar^^a6{\v S}
+  \gdefchar^^a8{\v s}
+  \gdefchar^^b4{\v Z}
+  \gdefchar^^b8{\v z}
+  \gdefchar^^bc{\OE}
+  \gdefchar^^bd{\oe}
+  \gdefchar^^be{\"Y}
 }
 
 % Latin2 (ISO-8859-2) character definitions.
 \def\lattwochardefs{%
-  \gdef^^a0{\tie}
-  \gdef^^a1{\ogonek{A}}
-  \gdef^^a2{\u{}}
-  \gdef^^a3{\L}
-  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
-  \gdef^^a5{\v L}
-  \gdef^^a6{\'S}
-  \gdef^^a7{\S}
-  \gdef^^a8{\"{}}
-  \gdef^^a9{\v S}
-  \gdef^^aa{\cedilla S}
-  \gdef^^ab{\v T}
-  \gdef^^ac{\'Z}
-  \gdef^^ad{\-}
-  \gdef^^ae{\v Z}
-  \gdef^^af{\dotaccent Z}
-  %
-  \gdef^^b0{\textdegree}
-  \gdef^^b1{\ogonek{a}}
-  \gdef^^b2{\ogonek{ }}
-  \gdef^^b3{\l}
-  \gdef^^b4{\'{}}
-  \gdef^^b5{\v l}
-  \gdef^^b6{\'s}
-  \gdef^^b7{\v{}}
-  \gdef^^b8{\cedilla\ }
-  \gdef^^b9{\v s}
-  \gdef^^ba{\cedilla s}
-  \gdef^^bb{\v t}
-  \gdef^^bc{\'z}
-  \gdef^^bd{\H{}}
-  \gdef^^be{\v z}
-  \gdef^^bf{\dotaccent z}
-  %
-  \gdef^^c0{\'R}
-  \gdef^^c1{\'A}
-  \gdef^^c2{\^A}
-  \gdef^^c3{\u A}
-  \gdef^^c4{\"A}
-  \gdef^^c5{\'L}
-  \gdef^^c6{\'C}
-  \gdef^^c7{\cedilla C}
-  \gdef^^c8{\v C}
-  \gdef^^c9{\'E}
-  \gdef^^ca{\ogonek{E}}
-  \gdef^^cb{\"E}
-  \gdef^^cc{\v E}
-  \gdef^^cd{\'I}
-  \gdef^^ce{\^I}
-  \gdef^^cf{\v D}
-  %
-  \gdef^^d0{\DH}
-  \gdef^^d1{\'N}
-  \gdef^^d2{\v N}
-  \gdef^^d3{\'O}
-  \gdef^^d4{\^O}
-  \gdef^^d5{\H O}
-  \gdef^^d6{\"O}
-  \gdef^^d7{$\times$}
-  \gdef^^d8{\v R}
-  \gdef^^d9{\ringaccent U}
-  \gdef^^da{\'U}
-  \gdef^^db{\H U}
-  \gdef^^dc{\"U}
-  \gdef^^dd{\'Y}
-  \gdef^^de{\cedilla T}
-  \gdef^^df{\ss}
-  %
-  \gdef^^e0{\'r}
-  \gdef^^e1{\'a}
-  \gdef^^e2{\^a}
-  \gdef^^e3{\u a}
-  \gdef^^e4{\"a}
-  \gdef^^e5{\'l}
-  \gdef^^e6{\'c}
-  \gdef^^e7{\cedilla c}
-  \gdef^^e8{\v c}
-  \gdef^^e9{\'e}
-  \gdef^^ea{\ogonek{e}}
-  \gdef^^eb{\"e}
-  \gdef^^ec{\v e}
-  \gdef^^ed{\'{\dotless{i}}}
-  \gdef^^ee{\^{\dotless{i}}}
-  \gdef^^ef{\v d}
-  %
-  \gdef^^f0{\dh}
-  \gdef^^f1{\'n}
-  \gdef^^f2{\v n}
-  \gdef^^f3{\'o}
-  \gdef^^f4{\^o}
-  \gdef^^f5{\H o}
-  \gdef^^f6{\"o}
-  \gdef^^f7{$\div$}
-  \gdef^^f8{\v r}
-  \gdef^^f9{\ringaccent u}
-  \gdef^^fa{\'u}
-  \gdef^^fb{\H u}
-  \gdef^^fc{\"u}
-  \gdef^^fd{\'y}
-  \gdef^^fe{\cedilla t}
-  \gdef^^ff{\dotaccent{}}
+  \gdefchar^^a0{\tie}
+  \gdefchar^^a1{\ogonek{A}}
+  \gdefchar^^a2{\u{}}
+  \gdefchar^^a3{\L}
+  \gdefchar^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdefchar^^a5{\v L}
+  \gdefchar^^a6{\'S}
+  \gdefchar^^a7{\S}
+  \gdefchar^^a8{\"{}}
+  \gdefchar^^a9{\v S}
+  \gdefchar^^aa{\cedilla S}
+  \gdefchar^^ab{\v T}
+  \gdefchar^^ac{\'Z}
+  \gdefchar^^ad{\-}
+  \gdefchar^^ae{\v Z}
+  \gdefchar^^af{\dotaccent Z}
+  %
+  \gdefchar^^b0{\textdegree}
+  \gdefchar^^b1{\ogonek{a}}
+  \gdefchar^^b2{\ogonek{ }}
+  \gdefchar^^b3{\l}
+  \gdefchar^^b4{\'{}}
+  \gdefchar^^b5{\v l}
+  \gdefchar^^b6{\'s}
+  \gdefchar^^b7{\v{}}
+  \gdefchar^^b8{\cedilla\ }
+  \gdefchar^^b9{\v s}
+  \gdefchar^^ba{\cedilla s}
+  \gdefchar^^bb{\v t}
+  \gdefchar^^bc{\'z}
+  \gdefchar^^bd{\H{}}
+  \gdefchar^^be{\v z}
+  \gdefchar^^bf{\dotaccent z}
+  %
+  \gdefchar^^c0{\'R}
+  \gdefchar^^c1{\'A}
+  \gdefchar^^c2{\^A}
+  \gdefchar^^c3{\u A}
+  \gdefchar^^c4{\"A}
+  \gdefchar^^c5{\'L}
+  \gdefchar^^c6{\'C}
+  \gdefchar^^c7{\cedilla C}
+  \gdefchar^^c8{\v C}
+  \gdefchar^^c9{\'E}
+  \gdefchar^^ca{\ogonek{E}}
+  \gdefchar^^cb{\"E}
+  \gdefchar^^cc{\v E}
+  \gdefchar^^cd{\'I}
+  \gdefchar^^ce{\^I}
+  \gdefchar^^cf{\v D}
+  %
+  \gdefchar^^d0{\DH}
+  \gdefchar^^d1{\'N}
+  \gdefchar^^d2{\v N}
+  \gdefchar^^d3{\'O}
+  \gdefchar^^d4{\^O}
+  \gdefchar^^d5{\H O}
+  \gdefchar^^d6{\"O}
+  \gdefchar^^d7{$\times$}
+  \gdefchar^^d8{\v R}
+  \gdefchar^^d9{\ringaccent U}
+  \gdefchar^^da{\'U}
+  \gdefchar^^db{\H U}
+  \gdefchar^^dc{\"U}
+  \gdefchar^^dd{\'Y}
+  \gdefchar^^de{\cedilla T}
+  \gdefchar^^df{\ss}
+  %
+  \gdefchar^^e0{\'r}
+  \gdefchar^^e1{\'a}
+  \gdefchar^^e2{\^a}
+  \gdefchar^^e3{\u a}
+  \gdefchar^^e4{\"a}
+  \gdefchar^^e5{\'l}
+  \gdefchar^^e6{\'c}
+  \gdefchar^^e7{\cedilla c}
+  \gdefchar^^e8{\v c}
+  \gdefchar^^e9{\'e}
+  \gdefchar^^ea{\ogonek{e}}
+  \gdefchar^^eb{\"e}
+  \gdefchar^^ec{\v e}
+  \gdefchar^^ed{\'{\dotless{i}}}
+  \gdefchar^^ee{\^{\dotless{i}}}
+  \gdefchar^^ef{\v d}
+  %
+  \gdefchar^^f0{\dh}
+  \gdefchar^^f1{\'n}
+  \gdefchar^^f2{\v n}
+  \gdefchar^^f3{\'o}
+  \gdefchar^^f4{\^o}
+  \gdefchar^^f5{\H o}
+  \gdefchar^^f6{\"o}
+  \gdefchar^^f7{$\div$}
+  \gdefchar^^f8{\v r}
+  \gdefchar^^f9{\ringaccent u}
+  \gdefchar^^fa{\'u}
+  \gdefchar^^fb{\H u}
+  \gdefchar^^fc{\"u}
+  \gdefchar^^fd{\'y}
+  \gdefchar^^fe{\cedilla t}
+  \gdefchar^^ff{\dotaccent{}}
 }
 
 % UTF-8 character definitions.
@@ -9160,38 +10325,94 @@ directory should work if nowhere else does.}
   \fi
 }
 
+% Give non-ASCII bytes the active definitions for processing UTF-8 sequences
 \begingroup
   \catcode`\~13
+  \catcode`\$12
   \catcode`\"12
 
+  % Loop from \countUTFx to \countUTFy, performing \UTFviiiTmp
+  % substituting ~ and $ with a character token of that value.
   \def\UTFviiiLoop{%
     \global\catcode\countUTFx\active
     \uccode`\~\countUTFx
+    \uccode`\$\countUTFx
     \uppercase\expandafter{\UTFviiiTmp}%
     \advance\countUTFx by 1
     \ifnum\countUTFx < \countUTFy
       \expandafter\UTFviiiLoop
     \fi}
 
+  % For bytes other than the first in a UTF-8 sequence.  Not expected to
+  % be expanded except when writing to auxiliary files.
+  \countUTFx = "80
+  \countUTFy = "C2
+  \def\UTFviiiTmp{%
+    \gdef~{%
+        \ifpassthroughchars $\fi}}%
+  \UTFviiiLoop
+
   \countUTFx = "C2
   \countUTFy = "E0
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiTwoOctets\expandafter$\fi}}%
   \UTFviiiLoop
 
   \countUTFx = "E0
   \countUTFy = "F0
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiThreeOctets\expandafter$\fi}}%
   \UTFviiiLoop
 
   \countUTFx = "F0
   \countUTFy = "F4
   \def\UTFviiiTmp{%
-    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+    \gdef~{%
+        \ifpassthroughchars $%
+        \else\expandafter\UTFviiiFourOctets\expandafter$\fi
+        }}%
   \UTFviiiLoop
 \endgroup
 
+\def\globallet{\global\let} % save some \expandafter's below
+
+% @U{xxxx} to produce U+xxxx, if we support it.
+\def\U#1{%
+  \expandafter\ifx\csname uni:#1\endcsname \relax
+    \iftxinativeunicodecapable
+      % All Unicode characters can be used if native Unicode handling is
+      % active.  However, if the font does not have the glyph,
+      % letters are missing.
+      \begingroup
+        \uccode`\.="#1\relax
+        \uppercase{.}
+      \endgroup
+    \else
+      \errhelp = \EMsimple     
+      \errmessage{Unicode character U+#1 not supported, sorry}%
+    \fi
+  \else
+    \csname uni:#1\endcsname
+  \fi
+}
+
+% These macros are used here to construct the name of a control
+% sequence to be defined.
+\def\UTFviiiTwoOctetsName#1#2{%
+  \csname u8:#1\string #2\endcsname}%
+\def\UTFviiiThreeOctetsName#1#2#3{%
+  \csname u8:#1\string #2\string #3\endcsname}%
+\def\UTFviiiFourOctetsName#1#2#3#4{%
+  \csname u8:#1\string #2\string #3\string #4\endcsname}%
+
+% For UTF-8 byte sequences (TeX, e-TeX and pdfTeX),
+% provide a definition macro to replace a Unicode character;
+% this gets used by the @U command
+%
 \begingroup
   \catcode`\"=12
   \catcode`\<=12
@@ -9200,459 +10421,849 @@ directory should work if nowhere else does.}
   \catcode`\;=12
   \catcode`\!=12
   \catcode`\~=13
-
-  \gdef\DeclareUnicodeCharacter#1#2{%
+  \gdef\DeclareUnicodeCharacterUTFviii#1#2{%
     \countUTFz = "#1\relax
-    %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
     \begingroup
       \parseXMLCharref
-      \def\UTFviiiTwoOctets##1##2{%
-        \csname u8:##1\string ##2\endcsname}%
-      \def\UTFviiiThreeOctets##1##2##3{%
-        \csname u8:##1\string ##2\string ##3\endcsname}%
-      \def\UTFviiiFourOctets##1##2##3##4{%
-        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
-      \expandafter\expandafter\expandafter\expandafter
-       \expandafter\expandafter\expandafter
-       \gdef\UTFviiiTmp{#2}%
+    
+      % Give \u8:... its definition.  The sequence of seven \expandafter's
+      % expands after the \gdef three times, e.g.
+      %
+      % 1.  \UTFviiTwoOctetsName B1 B2
+      % 2.  \csname u8:B1 \string B2 \endcsname
+      % 3.  \u8: B1 B2  (a single control sequence token)
+      %
+      \expandafter\expandafter
+      \expandafter\expandafter
+      \expandafter\expandafter
+      \expandafter\gdef       \UTFviiiTmp{#2}%
+      % 
+      \expandafter\ifx\csname uni:#1\endcsname \relax \else
+       \message{Internal error, already defined: #1}%
+      \fi
+      %
+      % define an additional control sequence for this code point.
+      \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp
     \endgroup}
-
+  %
+  % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp
+  % to the corresponding UTF-8 sequence.
   \gdef\parseXMLCharref{%
     \ifnum\countUTFz < "A0\relax
       \errhelp = \EMsimple
       \errmessage{Cannot define Unicode char value < 00A0}%
     \else\ifnum\countUTFz < "800\relax
       \parseUTFviiiA,%
-      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+      \parseUTFviiiB C\UTFviiiTwoOctetsName.,%
     \else\ifnum\countUTFz < "10000\relax
       \parseUTFviiiA;%
       \parseUTFviiiA,%
-      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+      \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}%
     \else
       \parseUTFviiiA;%
       \parseUTFviiiA,%
       \parseUTFviiiA!%
-      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+      \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}%
     \fi\fi\fi
   }
 
+  % Extract a byte from the end of the UTF-8 representation of \countUTFx.
+  % It must be a non-initial byte in the sequence.
+  % Change \uccode of #1 for it to be used in \parseUTFviiiB as one
+  % of the bytes.
   \gdef\parseUTFviiiA#1{%
     \countUTFx = \countUTFz
     \divide\countUTFz by 64
-    \countUTFy = \countUTFz
+    \countUTFy = \countUTFz  % Save to be the future value of \countUTFz.
     \multiply\countUTFz by 64
+    
+    % \countUTFz is now \countUTFx with the last 5 bits cleared.  Subtract
+    % in order to get the last five bits.
     \advance\countUTFx by -\countUTFz
+
+    % Convert this to the byte in the UTF-8 sequence.
     \advance\countUTFx by 128
     \uccode `#1\countUTFx
     \countUTFz = \countUTFy}
 
+  % Used to put a UTF-8 byte sequence into \UTFviiiTmp
+  % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8
+  %    sequence.
+  % #2 is one of the \UTFviii*OctetsName macros.
+  % #3 is always a full stop (.)
+  % #4 is a template for the other bytes in the sequence.  The values for these
+  %    bytes is substituted in here with \uppercase using the \uccode's.
   \gdef\parseUTFviiiB#1#2#3#4{%
     \advance\countUTFz by "#10\relax
     \uccode `#3\countUTFz
     \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
 \endgroup
 
+% For native Unicode handling (XeTeX and LuaTeX),
+% provide a definition macro that sets a catcode to `other' non-globally
+%
+\def\DeclareUnicodeCharacterNativeOther#1#2{%
+  \catcode"#1=\other
+}
+
+% https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_M
+% U+0000..U+007F = https://en.wikipedia.org/wiki/Basic_Latin_(Unicode_block)
+% U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
+% U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
+% U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
+% 
+% Many of our renditions are less than wonderful, and all the missing
+% characters are available somewhere.  Loading the necessary fonts
+% awaits user request.  We can't truly support Unicode without
+% reimplementing everything that's been done in LaTeX for many years,
+% plus probably using luatex or xetex, and who knows what else.
+% We won't be doing that here in this simple file.  But we can try to at
+% least make most of the characters not bomb out.
+%
+\def\unicodechardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}%
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}%
+  \DeclareUnicodeCharacter{00A2}{{\tcfont \char162}}% 0242=cent
+  \DeclareUnicodeCharacter{00A3}{\pounds}%
+  \DeclareUnicodeCharacter{00A4}{{\tcfont \char164}}% 0244=currency
+  \DeclareUnicodeCharacter{00A5}{{\tcfont \char165}}% 0245=yen
+  \DeclareUnicodeCharacter{00A6}{{\tcfont \char166}}% 0246=brokenbar
+  \DeclareUnicodeCharacter{00A7}{\S}%
+  \DeclareUnicodeCharacter{00A8}{\"{ }}%
+  \DeclareUnicodeCharacter{00A9}{\copyright}%
+  \DeclareUnicodeCharacter{00AA}{\ordf}%
+  \DeclareUnicodeCharacter{00AB}{\guillemetleft}%
+  \DeclareUnicodeCharacter{00AC}{\ensuremath\lnot}%
+  \DeclareUnicodeCharacter{00AD}{\-}%
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}%
+  \DeclareUnicodeCharacter{00AF}{\={ }}%
+  %
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}%
+  \DeclareUnicodeCharacter{00B1}{\ensuremath\pm}%
+  \DeclareUnicodeCharacter{00B2}{$^2$}%
+  \DeclareUnicodeCharacter{00B3}{$^3$}%
+  \DeclareUnicodeCharacter{00B4}{\'{ }}%
+  \DeclareUnicodeCharacter{00B5}{$\mu$}%
+  \DeclareUnicodeCharacter{00B6}{\P}%
+  \DeclareUnicodeCharacter{00B7}{\ensuremath\cdot}%
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}%
+  \DeclareUnicodeCharacter{00B9}{$^1$}%
+  \DeclareUnicodeCharacter{00BA}{\ordm}%
+  \DeclareUnicodeCharacter{00BB}{\guillemetright}%
+  \DeclareUnicodeCharacter{00BC}{$1\over4$}%
+  \DeclareUnicodeCharacter{00BD}{$1\over2$}%
+  \DeclareUnicodeCharacter{00BE}{$3\over4$}%
+  \DeclareUnicodeCharacter{00BF}{\questiondown}%
+  %
+  \DeclareUnicodeCharacter{00C0}{\`A}%
+  \DeclareUnicodeCharacter{00C1}{\'A}%
+  \DeclareUnicodeCharacter{00C2}{\^A}%
+  \DeclareUnicodeCharacter{00C3}{\~A}%
+  \DeclareUnicodeCharacter{00C4}{\"A}%
+  \DeclareUnicodeCharacter{00C5}{\AA}%
+  \DeclareUnicodeCharacter{00C6}{\AE}%
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}%
+  \DeclareUnicodeCharacter{00C8}{\`E}%
+  \DeclareUnicodeCharacter{00C9}{\'E}%
+  \DeclareUnicodeCharacter{00CA}{\^E}%
+  \DeclareUnicodeCharacter{00CB}{\"E}%
+  \DeclareUnicodeCharacter{00CC}{\`I}%
+  \DeclareUnicodeCharacter{00CD}{\'I}%
+  \DeclareUnicodeCharacter{00CE}{\^I}%
+  \DeclareUnicodeCharacter{00CF}{\"I}%
+  %
+  \DeclareUnicodeCharacter{00D0}{\DH}%
+  \DeclareUnicodeCharacter{00D1}{\~N}%
+  \DeclareUnicodeCharacter{00D2}{\`O}%
+  \DeclareUnicodeCharacter{00D3}{\'O}%
+  \DeclareUnicodeCharacter{00D4}{\^O}%
+  \DeclareUnicodeCharacter{00D5}{\~O}%
+  \DeclareUnicodeCharacter{00D6}{\"O}%
+  \DeclareUnicodeCharacter{00D7}{\ensuremath\times}%
+  \DeclareUnicodeCharacter{00D8}{\O}%
+  \DeclareUnicodeCharacter{00D9}{\`U}%
+  \DeclareUnicodeCharacter{00DA}{\'U}%
+  \DeclareUnicodeCharacter{00DB}{\^U}%
+  \DeclareUnicodeCharacter{00DC}{\"U}%
+  \DeclareUnicodeCharacter{00DD}{\'Y}%
+  \DeclareUnicodeCharacter{00DE}{\TH}%
+  \DeclareUnicodeCharacter{00DF}{\ss}%
+  %
+  \DeclareUnicodeCharacter{00E0}{\`a}%
+  \DeclareUnicodeCharacter{00E1}{\'a}%
+  \DeclareUnicodeCharacter{00E2}{\^a}%
+  \DeclareUnicodeCharacter{00E3}{\~a}%
+  \DeclareUnicodeCharacter{00E4}{\"a}%
+  \DeclareUnicodeCharacter{00E5}{\aa}%
+  \DeclareUnicodeCharacter{00E6}{\ae}%
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}%
+  \DeclareUnicodeCharacter{00E8}{\`e}%
+  \DeclareUnicodeCharacter{00E9}{\'e}%
+  \DeclareUnicodeCharacter{00EA}{\^e}%
+  \DeclareUnicodeCharacter{00EB}{\"e}%
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}%
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}%
+  %
+  \DeclareUnicodeCharacter{00F0}{\dh}%
+  \DeclareUnicodeCharacter{00F1}{\~n}%
+  \DeclareUnicodeCharacter{00F2}{\`o}%
+  \DeclareUnicodeCharacter{00F3}{\'o}%
+  \DeclareUnicodeCharacter{00F4}{\^o}%
+  \DeclareUnicodeCharacter{00F5}{\~o}%
+  \DeclareUnicodeCharacter{00F6}{\"o}%
+  \DeclareUnicodeCharacter{00F7}{\ensuremath\div}%
+  \DeclareUnicodeCharacter{00F8}{\o}%
+  \DeclareUnicodeCharacter{00F9}{\`u}%
+  \DeclareUnicodeCharacter{00FA}{\'u}%
+  \DeclareUnicodeCharacter{00FB}{\^u}%
+  \DeclareUnicodeCharacter{00FC}{\"u}%
+  \DeclareUnicodeCharacter{00FD}{\'y}%
+  \DeclareUnicodeCharacter{00FE}{\th}%
+  \DeclareUnicodeCharacter{00FF}{\"y}%
+  %
+  \DeclareUnicodeCharacter{0100}{\=A}%
+  \DeclareUnicodeCharacter{0101}{\=a}%
+  \DeclareUnicodeCharacter{0102}{\u{A}}%
+  \DeclareUnicodeCharacter{0103}{\u{a}}%
+  \DeclareUnicodeCharacter{0104}{\ogonek{A}}%
+  \DeclareUnicodeCharacter{0105}{\ogonek{a}}%
+  \DeclareUnicodeCharacter{0106}{\'C}%
+  \DeclareUnicodeCharacter{0107}{\'c}%
+  \DeclareUnicodeCharacter{0108}{\^C}%
+  \DeclareUnicodeCharacter{0109}{\^c}%
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}%
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}%
+  \DeclareUnicodeCharacter{010C}{\v{C}}%
+  \DeclareUnicodeCharacter{010D}{\v{c}}%
+  \DeclareUnicodeCharacter{010E}{\v{D}}%
+  \DeclareUnicodeCharacter{010F}{d'}%
+  %
+  \DeclareUnicodeCharacter{0110}{\DH}%
+  \DeclareUnicodeCharacter{0111}{\dh}%
+  \DeclareUnicodeCharacter{0112}{\=E}%
+  \DeclareUnicodeCharacter{0113}{\=e}%
+  \DeclareUnicodeCharacter{0114}{\u{E}}%
+  \DeclareUnicodeCharacter{0115}{\u{e}}%
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}%
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}%
+  \DeclareUnicodeCharacter{0118}{\ogonek{E}}%
+  \DeclareUnicodeCharacter{0119}{\ogonek{e}}%
+  \DeclareUnicodeCharacter{011A}{\v{E}}%
+  \DeclareUnicodeCharacter{011B}{\v{e}}%
+  \DeclareUnicodeCharacter{011C}{\^G}%
+  \DeclareUnicodeCharacter{011D}{\^g}%
+  \DeclareUnicodeCharacter{011E}{\u{G}}%
+  \DeclareUnicodeCharacter{011F}{\u{g}}%
+  %
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}%
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}%
+  \DeclareUnicodeCharacter{0122}{\cedilla{G}}%
+  \DeclareUnicodeCharacter{0123}{\cedilla{g}}%
+  \DeclareUnicodeCharacter{0124}{\^H}%
+  \DeclareUnicodeCharacter{0125}{\^h}%
+  \DeclareUnicodeCharacter{0126}{\missingcharmsg{H WITH STROKE}}%
+  \DeclareUnicodeCharacter{0127}{\missingcharmsg{h WITH STROKE}}%
+  \DeclareUnicodeCharacter{0128}{\~I}%
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}%
+  \DeclareUnicodeCharacter{012A}{\=I}%
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}%
+  \DeclareUnicodeCharacter{012C}{\u{I}}%
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}%
+  \DeclareUnicodeCharacter{012E}{\ogonek{I}}%
+  \DeclareUnicodeCharacter{012F}{\ogonek{i}}%
+  %
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}%
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}%
+  \DeclareUnicodeCharacter{0132}{IJ}%
+  \DeclareUnicodeCharacter{0133}{ij}%
+  \DeclareUnicodeCharacter{0134}{\^J}%
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}%
+  \DeclareUnicodeCharacter{0136}{\cedilla{K}}%
+  \DeclareUnicodeCharacter{0137}{\cedilla{k}}%
+  \DeclareUnicodeCharacter{0138}{\ensuremath\kappa}%
+  \DeclareUnicodeCharacter{0139}{\'L}%
+  \DeclareUnicodeCharacter{013A}{\'l}%
+  \DeclareUnicodeCharacter{013B}{\cedilla{L}}%
+  \DeclareUnicodeCharacter{013C}{\cedilla{l}}%
+  \DeclareUnicodeCharacter{013D}{L'}% should kern
+  \DeclareUnicodeCharacter{013E}{l'}% should kern
+  \DeclareUnicodeCharacter{013F}{L\U{00B7}}%
+  %
+  \DeclareUnicodeCharacter{0140}{l\U{00B7}}%
+  \DeclareUnicodeCharacter{0141}{\L}%
+  \DeclareUnicodeCharacter{0142}{\l}%
+  \DeclareUnicodeCharacter{0143}{\'N}%
+  \DeclareUnicodeCharacter{0144}{\'n}%
+  \DeclareUnicodeCharacter{0145}{\cedilla{N}}%
+  \DeclareUnicodeCharacter{0146}{\cedilla{n}}%
+  \DeclareUnicodeCharacter{0147}{\v{N}}%
+  \DeclareUnicodeCharacter{0148}{\v{n}}%
+  \DeclareUnicodeCharacter{0149}{'n}%
+  \DeclareUnicodeCharacter{014A}{\missingcharmsg{ENG}}%
+  \DeclareUnicodeCharacter{014B}{\missingcharmsg{eng}}%
+  \DeclareUnicodeCharacter{014C}{\=O}%
+  \DeclareUnicodeCharacter{014D}{\=o}%
+  \DeclareUnicodeCharacter{014E}{\u{O}}%
+  \DeclareUnicodeCharacter{014F}{\u{o}}%
+  %
+  \DeclareUnicodeCharacter{0150}{\H{O}}%
+  \DeclareUnicodeCharacter{0151}{\H{o}}%
+  \DeclareUnicodeCharacter{0152}{\OE}%
+  \DeclareUnicodeCharacter{0153}{\oe}%
+  \DeclareUnicodeCharacter{0154}{\'R}%
+  \DeclareUnicodeCharacter{0155}{\'r}%
+  \DeclareUnicodeCharacter{0156}{\cedilla{R}}%
+  \DeclareUnicodeCharacter{0157}{\cedilla{r}}%
+  \DeclareUnicodeCharacter{0158}{\v{R}}%
+  \DeclareUnicodeCharacter{0159}{\v{r}}%
+  \DeclareUnicodeCharacter{015A}{\'S}%
+  \DeclareUnicodeCharacter{015B}{\'s}%
+  \DeclareUnicodeCharacter{015C}{\^S}%
+  \DeclareUnicodeCharacter{015D}{\^s}%
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}%
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}%
+  %
+  \DeclareUnicodeCharacter{0160}{\v{S}}%
+  \DeclareUnicodeCharacter{0161}{\v{s}}%
+  \DeclareUnicodeCharacter{0162}{\cedilla{T}}%
+  \DeclareUnicodeCharacter{0163}{\cedilla{t}}%
+  \DeclareUnicodeCharacter{0164}{\v{T}}%
+  \DeclareUnicodeCharacter{0165}{\v{t}}%
+  \DeclareUnicodeCharacter{0166}{\missingcharmsg{H WITH STROKE}}%
+  \DeclareUnicodeCharacter{0167}{\missingcharmsg{h WITH STROKE}}%
+  \DeclareUnicodeCharacter{0168}{\~U}%
+  \DeclareUnicodeCharacter{0169}{\~u}%
+  \DeclareUnicodeCharacter{016A}{\=U}%
+  \DeclareUnicodeCharacter{016B}{\=u}%
+  \DeclareUnicodeCharacter{016C}{\u{U}}%
+  \DeclareUnicodeCharacter{016D}{\u{u}}%
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}%
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}%
+  %
+  \DeclareUnicodeCharacter{0170}{\H{U}}%
+  \DeclareUnicodeCharacter{0171}{\H{u}}%
+  \DeclareUnicodeCharacter{0172}{\ogonek{U}}%
+  \DeclareUnicodeCharacter{0173}{\ogonek{u}}%
+  \DeclareUnicodeCharacter{0174}{\^W}%
+  \DeclareUnicodeCharacter{0175}{\^w}%
+  \DeclareUnicodeCharacter{0176}{\^Y}%
+  \DeclareUnicodeCharacter{0177}{\^y}%
+  \DeclareUnicodeCharacter{0178}{\"Y}%
+  \DeclareUnicodeCharacter{0179}{\'Z}%
+  \DeclareUnicodeCharacter{017A}{\'z}%
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}%
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}%
+  \DeclareUnicodeCharacter{017D}{\v{Z}}%
+  \DeclareUnicodeCharacter{017E}{\v{z}}%
+  \DeclareUnicodeCharacter{017F}{\missingcharmsg{LONG S}}%
+  %
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}%
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}%
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}%
+  \DeclareUnicodeCharacter{01C7}{LJ}%
+  \DeclareUnicodeCharacter{01C8}{Lj}%
+  \DeclareUnicodeCharacter{01C9}{lj}%
+  \DeclareUnicodeCharacter{01CA}{NJ}%
+  \DeclareUnicodeCharacter{01CB}{Nj}%
+  \DeclareUnicodeCharacter{01CC}{nj}%
+  \DeclareUnicodeCharacter{01CD}{\v{A}}%
+  \DeclareUnicodeCharacter{01CE}{\v{a}}%
+  \DeclareUnicodeCharacter{01CF}{\v{I}}%
+  %
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}%
+  \DeclareUnicodeCharacter{01D1}{\v{O}}%
+  \DeclareUnicodeCharacter{01D2}{\v{o}}%
+  \DeclareUnicodeCharacter{01D3}{\v{U}}%
+  \DeclareUnicodeCharacter{01D4}{\v{u}}%
+  %
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}%
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}%
+  \DeclareUnicodeCharacter{01E6}{\v{G}}%
+  \DeclareUnicodeCharacter{01E7}{\v{g}}%
+  \DeclareUnicodeCharacter{01E8}{\v{K}}%
+  \DeclareUnicodeCharacter{01E9}{\v{k}}%
+  %
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}%
+  \DeclareUnicodeCharacter{01F1}{DZ}%
+  \DeclareUnicodeCharacter{01F2}{Dz}%
+  \DeclareUnicodeCharacter{01F3}{dz}%
+  \DeclareUnicodeCharacter{01F4}{\'G}%
+  \DeclareUnicodeCharacter{01F5}{\'g}%
+  \DeclareUnicodeCharacter{01F8}{\`N}%
+  \DeclareUnicodeCharacter{01F9}{\`n}%
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}%
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}%
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}%
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}%
+  %
+  \DeclareUnicodeCharacter{021E}{\v{H}}%
+  \DeclareUnicodeCharacter{021F}{\v{h}}%
+  %
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}%
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}%
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}%
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}%
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}%
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}%
+  %
+  \DeclareUnicodeCharacter{0232}{\=Y}%
+  \DeclareUnicodeCharacter{0233}{\=y}%
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}%
+  %
+  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}%
+  %
+  % Greek letters upper case
+  \DeclareUnicodeCharacter{0391}{{\it A}}%
+  \DeclareUnicodeCharacter{0392}{{\it B}}%
+  \DeclareUnicodeCharacter{0393}{\ensuremath{\mit\Gamma}}%
+  \DeclareUnicodeCharacter{0394}{\ensuremath{\mit\Delta}}%
+  \DeclareUnicodeCharacter{0395}{{\it E}}%
+  \DeclareUnicodeCharacter{0396}{{\it Z}}%
+  \DeclareUnicodeCharacter{0397}{{\it H}}%
+  \DeclareUnicodeCharacter{0398}{\ensuremath{\mit\Theta}}%
+  \DeclareUnicodeCharacter{0399}{{\it I}}%
+  \DeclareUnicodeCharacter{039A}{{\it K}}%
+  \DeclareUnicodeCharacter{039B}{\ensuremath{\mit\Lambda}}%
+  \DeclareUnicodeCharacter{039C}{{\it M}}%
+  \DeclareUnicodeCharacter{039D}{{\it N}}%
+  \DeclareUnicodeCharacter{039E}{\ensuremath{\mit\Xi}}%
+  \DeclareUnicodeCharacter{039F}{{\it O}}%
+  \DeclareUnicodeCharacter{03A0}{\ensuremath{\mit\Pi}}%
+  \DeclareUnicodeCharacter{03A1}{{\it P}}%
+  %\DeclareUnicodeCharacter{03A2}{} % none - corresponds to final sigma
+  \DeclareUnicodeCharacter{03A3}{\ensuremath{\mit\Sigma}}%
+  \DeclareUnicodeCharacter{03A4}{{\it T}}%
+  \DeclareUnicodeCharacter{03A5}{\ensuremath{\mit\Upsilon}}%
+  \DeclareUnicodeCharacter{03A6}{\ensuremath{\mit\Phi}}%
+  \DeclareUnicodeCharacter{03A7}{{\it X}}%
+  \DeclareUnicodeCharacter{03A8}{\ensuremath{\mit\Psi}}%
+  \DeclareUnicodeCharacter{03A9}{\ensuremath{\mit\Omega}}%
+  %
+  % Vowels with accents
+  \DeclareUnicodeCharacter{0390}{\ensuremath{\ddot{\acute\iota}}}%
+  \DeclareUnicodeCharacter{03AC}{\ensuremath{\acute\alpha}}%
+  \DeclareUnicodeCharacter{03AD}{\ensuremath{\acute\epsilon}}%
+  \DeclareUnicodeCharacter{03AE}{\ensuremath{\acute\eta}}%
+  \DeclareUnicodeCharacter{03AF}{\ensuremath{\acute\iota}}%
+  \DeclareUnicodeCharacter{03B0}{\ensuremath{\acute{\ddot\upsilon}}}%
+  %
+  % Standalone accent
+  \DeclareUnicodeCharacter{0384}{\ensuremath{\acute{\ }}}%
+  %
+  % Greek letters lower case
+  \DeclareUnicodeCharacter{03B1}{\ensuremath\alpha}%
+  \DeclareUnicodeCharacter{03B2}{\ensuremath\beta}%
+  \DeclareUnicodeCharacter{03B3}{\ensuremath\gamma}%
+  \DeclareUnicodeCharacter{03B4}{\ensuremath\delta}%
+  \DeclareUnicodeCharacter{03B5}{\ensuremath\epsilon}%
+  \DeclareUnicodeCharacter{03B6}{\ensuremath\zeta}%
+  \DeclareUnicodeCharacter{03B7}{\ensuremath\eta}%
+  \DeclareUnicodeCharacter{03B8}{\ensuremath\theta}%
+  \DeclareUnicodeCharacter{03B9}{\ensuremath\iota}%
+  \DeclareUnicodeCharacter{03BA}{\ensuremath\kappa}%
+  \DeclareUnicodeCharacter{03BB}{\ensuremath\lambda}%
+  \DeclareUnicodeCharacter{03BC}{\ensuremath\mu}%
+  \DeclareUnicodeCharacter{03BD}{\ensuremath\nu}%
+  \DeclareUnicodeCharacter{03BE}{\ensuremath\xi}%
+  \DeclareUnicodeCharacter{03BF}{{\it o}}% omicron
+  \DeclareUnicodeCharacter{03C0}{\ensuremath\pi}%
+  \DeclareUnicodeCharacter{03C1}{\ensuremath\rho}%
+  \DeclareUnicodeCharacter{03C2}{\ensuremath\varsigma}%
+  \DeclareUnicodeCharacter{03C3}{\ensuremath\sigma}%
+  \DeclareUnicodeCharacter{03C4}{\ensuremath\tau}%
+  \DeclareUnicodeCharacter{03C5}{\ensuremath\upsilon}%
+  \DeclareUnicodeCharacter{03C6}{\ensuremath\phi}%
+  \DeclareUnicodeCharacter{03C7}{\ensuremath\chi}%
+  \DeclareUnicodeCharacter{03C8}{\ensuremath\psi}%
+  \DeclareUnicodeCharacter{03C9}{\ensuremath\omega}%
+  %
+  % More Greek vowels with accents
+  \DeclareUnicodeCharacter{03CA}{\ensuremath{\ddot\iota}}%
+  \DeclareUnicodeCharacter{03CB}{\ensuremath{\ddot\upsilon}}%
+  \DeclareUnicodeCharacter{03CC}{\ensuremath{\acute o}}%
+  \DeclareUnicodeCharacter{03CD}{\ensuremath{\acute\upsilon}}%
+  \DeclareUnicodeCharacter{03CE}{\ensuremath{\acute\omega}}%
+  %
+  % Variant Greek letters
+  \DeclareUnicodeCharacter{03D1}{\ensuremath\vartheta}%
+  \DeclareUnicodeCharacter{03D6}{\ensuremath\varpi}%
+  \DeclareUnicodeCharacter{03F1}{\ensuremath\varrho}%
+  %
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}%
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}%
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}%
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}%
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}%
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}%
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}%
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}%
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}%
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}%
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}%
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}%
+  %
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}%
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}%
+  %
+  \DeclareUnicodeCharacter{1E20}{\=G}%
+  \DeclareUnicodeCharacter{1E21}{\=g}%
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}%
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}%
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}%
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}%
+  \DeclareUnicodeCharacter{1E26}{\"H}%
+  \DeclareUnicodeCharacter{1E27}{\"h}%
+  %
+  \DeclareUnicodeCharacter{1E30}{\'K}%
+  \DeclareUnicodeCharacter{1E31}{\'k}%
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}%
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}%
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}%
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}%
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}%
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}%
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}%
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}%
+  \DeclareUnicodeCharacter{1E3E}{\'M}%
+  \DeclareUnicodeCharacter{1E3F}{\'m}%
+  %
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}%
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}%
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}%
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}%
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}%
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}%
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}%
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}%
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}%
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}%
+  %
+  \DeclareUnicodeCharacter{1E54}{\'P}%
+  \DeclareUnicodeCharacter{1E55}{\'p}%
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}%
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}%
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}%
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}%
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}%
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}%
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}%
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}%
+  %
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}%
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}%
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}%
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}%
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}%
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}%
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}%
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}%
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}%
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}%
+  %
+  \DeclareUnicodeCharacter{1E7C}{\~V}%
+  \DeclareUnicodeCharacter{1E7D}{\~v}%
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}%
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}%
+  %
+  \DeclareUnicodeCharacter{1E80}{\`W}%
+  \DeclareUnicodeCharacter{1E81}{\`w}%
+  \DeclareUnicodeCharacter{1E82}{\'W}%
+  \DeclareUnicodeCharacter{1E83}{\'w}%
+  \DeclareUnicodeCharacter{1E84}{\"W}%
+  \DeclareUnicodeCharacter{1E85}{\"w}%
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}%
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}%
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}%
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}%
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}%
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}%
+  \DeclareUnicodeCharacter{1E8C}{\"X}%
+  \DeclareUnicodeCharacter{1E8D}{\"x}%
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}%
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}%
+  %
+  \DeclareUnicodeCharacter{1E90}{\^Z}%
+  \DeclareUnicodeCharacter{1E91}{\^z}%
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}%
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}%
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}%
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}%
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}%
+  \DeclareUnicodeCharacter{1E97}{\"t}%
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}%
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}%
+  %
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}%
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}%
+  %
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}%
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}%
+  \DeclareUnicodeCharacter{1EBC}{\~E}%
+  \DeclareUnicodeCharacter{1EBD}{\~e}%
+  %
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}%
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}%
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}%
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}%
+  %
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}%
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}%
+  %
+  \DeclareUnicodeCharacter{1EF2}{\`Y}%
+  \DeclareUnicodeCharacter{1EF3}{\`y}%
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}%
+  %
+  \DeclareUnicodeCharacter{1EF8}{\~Y}%
+  \DeclareUnicodeCharacter{1EF9}{\~y}%
+  %
+  % Punctuation
+  \DeclareUnicodeCharacter{2013}{--}%
+  \DeclareUnicodeCharacter{2014}{---}%
+  \DeclareUnicodeCharacter{2018}{\quoteleft}%
+  \DeclareUnicodeCharacter{2019}{\quoteright}%
+  \DeclareUnicodeCharacter{201A}{\quotesinglbase}%
+  \DeclareUnicodeCharacter{201C}{\quotedblleft}%
+  \DeclareUnicodeCharacter{201D}{\quotedblright}%
+  \DeclareUnicodeCharacter{201E}{\quotedblbase}%
+  \DeclareUnicodeCharacter{2020}{\ensuremath\dagger}%
+  \DeclareUnicodeCharacter{2021}{\ensuremath\ddagger}%
+  \DeclareUnicodeCharacter{2022}{\bullet}%
+  \DeclareUnicodeCharacter{202F}{\thinspace}%
+  \DeclareUnicodeCharacter{2026}{\dots}%
+  \DeclareUnicodeCharacter{2039}{\guilsinglleft}%
+  \DeclareUnicodeCharacter{203A}{\guilsinglright}%
+  %
+  \DeclareUnicodeCharacter{20AC}{\euro}%
+  %
+  \DeclareUnicodeCharacter{2192}{\expansion}%
+  \DeclareUnicodeCharacter{21D2}{\result}%
+  %
+  % Mathematical symbols
+  \DeclareUnicodeCharacter{2200}{\ensuremath\forall}%
+  \DeclareUnicodeCharacter{2203}{\ensuremath\exists}%
+  \DeclareUnicodeCharacter{2208}{\ensuremath\in}%
+  \DeclareUnicodeCharacter{2212}{\minus}%
+  \DeclareUnicodeCharacter{2217}{\ast}%
+  \DeclareUnicodeCharacter{221E}{\ensuremath\infty}%
+  \DeclareUnicodeCharacter{2225}{\ensuremath\parallel}%
+  \DeclareUnicodeCharacter{2227}{\ensuremath\wedge}%
+  \DeclareUnicodeCharacter{2229}{\ensuremath\cap}%
+  \DeclareUnicodeCharacter{2261}{\equiv}%
+  \DeclareUnicodeCharacter{2264}{\ensuremath\leq}%
+  \DeclareUnicodeCharacter{2265}{\ensuremath\geq}%
+  \DeclareUnicodeCharacter{2282}{\ensuremath\subset}%
+  \DeclareUnicodeCharacter{2287}{\ensuremath\supseteq}%
+  %
+  \DeclareUnicodeCharacter{2016}{\ensuremath\Vert}%
+  \DeclareUnicodeCharacter{2032}{\ensuremath\prime}%
+  \DeclareUnicodeCharacter{210F}{\ensuremath\hbar}%
+  \DeclareUnicodeCharacter{2111}{\ensuremath\Im}%
+  \DeclareUnicodeCharacter{2113}{\ensuremath\ell}%
+  \DeclareUnicodeCharacter{2118}{\ensuremath\wp}%
+  \DeclareUnicodeCharacter{211C}{\ensuremath\Re}%
+  \DeclareUnicodeCharacter{2127}{\ensuremath\mho}%
+  \DeclareUnicodeCharacter{2135}{\ensuremath\aleph}%
+  \DeclareUnicodeCharacter{2190}{\ensuremath\leftarrow}%
+  \DeclareUnicodeCharacter{2191}{\ensuremath\uparrow}%
+  \DeclareUnicodeCharacter{2193}{\ensuremath\downarrow}%
+  \DeclareUnicodeCharacter{2194}{\ensuremath\leftrightarrow}%
+  \DeclareUnicodeCharacter{2195}{\ensuremath\updownarrow}%
+  \DeclareUnicodeCharacter{2196}{\ensuremath\nwarrow}%
+  \DeclareUnicodeCharacter{2197}{\ensuremath\nearrow}%
+  \DeclareUnicodeCharacter{2198}{\ensuremath\searrow}%
+  \DeclareUnicodeCharacter{2199}{\ensuremath\swarrow}%
+  \DeclareUnicodeCharacter{21A6}{\ensuremath\mapsto}%
+  \DeclareUnicodeCharacter{21A9}{\ensuremath\hookleftarrow}%
+  \DeclareUnicodeCharacter{21AA}{\ensuremath\hookrightarrow}%
+  \DeclareUnicodeCharacter{21BC}{\ensuremath\leftharpoonup}%
+  \DeclareUnicodeCharacter{21BD}{\ensuremath\leftharpoondown}%
+  \DeclareUnicodeCharacter{21BE}{\ensuremath\upharpoonright}%
+  \DeclareUnicodeCharacter{21C0}{\ensuremath\rightharpoonup}%
+  \DeclareUnicodeCharacter{21C1}{\ensuremath\rightharpoondown}%
+  \DeclareUnicodeCharacter{21CC}{\ensuremath\rightleftharpoons}%
+  \DeclareUnicodeCharacter{21D0}{\ensuremath\Leftarrow}%
+  \DeclareUnicodeCharacter{21D1}{\ensuremath\Uparrow}%
+  \DeclareUnicodeCharacter{21D3}{\ensuremath\Downarrow}%
+  \DeclareUnicodeCharacter{21D4}{\ensuremath\Leftrightarrow}%
+  \DeclareUnicodeCharacter{21D5}{\ensuremath\Updownarrow}%
+  \DeclareUnicodeCharacter{21DD}{\ensuremath\leadsto}%
+  \DeclareUnicodeCharacter{2201}{\ensuremath\complement}%
+  \DeclareUnicodeCharacter{2202}{\ensuremath\partial}%
+  \DeclareUnicodeCharacter{2205}{\ensuremath\emptyset}%
+  \DeclareUnicodeCharacter{2207}{\ensuremath\nabla}%
+  \DeclareUnicodeCharacter{2209}{\ensuremath\notin}%
+  \DeclareUnicodeCharacter{220B}{\ensuremath\owns}%
+  \DeclareUnicodeCharacter{220F}{\ensuremath\prod}%
+  \DeclareUnicodeCharacter{2210}{\ensuremath\coprod}%
+  \DeclareUnicodeCharacter{2211}{\ensuremath\sum}%
+  \DeclareUnicodeCharacter{2213}{\ensuremath\mp}%
+  \DeclareUnicodeCharacter{2218}{\ensuremath\circ}%
+  \DeclareUnicodeCharacter{221A}{\ensuremath\surd}%
+  \DeclareUnicodeCharacter{221D}{\ensuremath\propto}%
+  \DeclareUnicodeCharacter{2220}{\ensuremath\angle}%
+  \DeclareUnicodeCharacter{2223}{\ensuremath\mid}%
+  \DeclareUnicodeCharacter{2228}{\ensuremath\vee}%
+  \DeclareUnicodeCharacter{222A}{\ensuremath\cup}%
+  \DeclareUnicodeCharacter{222B}{\ensuremath\smallint}%
+  \DeclareUnicodeCharacter{222E}{\ensuremath\oint}%
+  \DeclareUnicodeCharacter{223C}{\ensuremath\sim}%
+  \DeclareUnicodeCharacter{2240}{\ensuremath\wr}%
+  \DeclareUnicodeCharacter{2243}{\ensuremath\simeq}%
+  \DeclareUnicodeCharacter{2245}{\ensuremath\cong}%
+  \DeclareUnicodeCharacter{2248}{\ensuremath\approx}%
+  \DeclareUnicodeCharacter{224D}{\ensuremath\asymp}%
+  \DeclareUnicodeCharacter{2250}{\ensuremath\doteq}%
+  \DeclareUnicodeCharacter{2260}{\ensuremath\neq}%
+  \DeclareUnicodeCharacter{226A}{\ensuremath\ll}%
+  \DeclareUnicodeCharacter{226B}{\ensuremath\gg}%
+  \DeclareUnicodeCharacter{227A}{\ensuremath\prec}%
+  \DeclareUnicodeCharacter{227B}{\ensuremath\succ}%
+  \DeclareUnicodeCharacter{2283}{\ensuremath\supset}%
+  \DeclareUnicodeCharacter{2286}{\ensuremath\subseteq}%
+  \DeclareUnicodeCharacter{228E}{\ensuremath\uplus}%
+  \DeclareUnicodeCharacter{228F}{\ensuremath\sqsubset}%
+  \DeclareUnicodeCharacter{2290}{\ensuremath\sqsupset}%
+  \DeclareUnicodeCharacter{2291}{\ensuremath\sqsubseteq}%
+  \DeclareUnicodeCharacter{2292}{\ensuremath\sqsupseteq}%
+  \DeclareUnicodeCharacter{2293}{\ensuremath\sqcap}%
+  \DeclareUnicodeCharacter{2294}{\ensuremath\sqcup}%
+  \DeclareUnicodeCharacter{2295}{\ensuremath\oplus}%
+  \DeclareUnicodeCharacter{2296}{\ensuremath\ominus}%
+  \DeclareUnicodeCharacter{2297}{\ensuremath\otimes}%
+  \DeclareUnicodeCharacter{2298}{\ensuremath\oslash}%
+  \DeclareUnicodeCharacter{2299}{\ensuremath\odot}%
+  \DeclareUnicodeCharacter{22A2}{\ensuremath\vdash}%
+  \DeclareUnicodeCharacter{22A3}{\ensuremath\dashv}%
+  \DeclareUnicodeCharacter{22A4}{\ensuremath\ptextop}%
+  \DeclareUnicodeCharacter{22A5}{\ensuremath\bot}%
+  \DeclareUnicodeCharacter{22A8}{\ensuremath\models}%
+  \DeclareUnicodeCharacter{22B4}{\ensuremath\unlhd}%
+  \DeclareUnicodeCharacter{22B5}{\ensuremath\unrhd}%
+  \DeclareUnicodeCharacter{22C0}{\ensuremath\bigwedge}%
+  \DeclareUnicodeCharacter{22C1}{\ensuremath\bigvee}%
+  \DeclareUnicodeCharacter{22C2}{\ensuremath\bigcap}%
+  \DeclareUnicodeCharacter{22C3}{\ensuremath\bigcup}%
+  \DeclareUnicodeCharacter{22C4}{\ensuremath\diamond}%
+  \DeclareUnicodeCharacter{22C5}{\ensuremath\cdot}%
+  \DeclareUnicodeCharacter{22C6}{\ensuremath\star}%
+  \DeclareUnicodeCharacter{22C8}{\ensuremath\bowtie}%
+  \DeclareUnicodeCharacter{2308}{\ensuremath\lceil}%
+  \DeclareUnicodeCharacter{2309}{\ensuremath\rceil}%
+  \DeclareUnicodeCharacter{230A}{\ensuremath\lfloor}%
+  \DeclareUnicodeCharacter{230B}{\ensuremath\rfloor}%
+  \DeclareUnicodeCharacter{2322}{\ensuremath\frown}%
+  \DeclareUnicodeCharacter{2323}{\ensuremath\smile}%
+  %
+  \DeclareUnicodeCharacter{25A1}{\ensuremath\Box}%
+  \DeclareUnicodeCharacter{25B3}{\ensuremath\triangle}%
+  \DeclareUnicodeCharacter{25B7}{\ensuremath\triangleright}%
+  \DeclareUnicodeCharacter{25BD}{\ensuremath\bigtriangledown}%
+  \DeclareUnicodeCharacter{25C1}{\ensuremath\triangleleft}%
+  \DeclareUnicodeCharacter{25C7}{\ensuremath\Diamond}%
+  \DeclareUnicodeCharacter{2660}{\ensuremath\spadesuit}%
+  \DeclareUnicodeCharacter{2661}{\ensuremath\heartsuit}%
+  \DeclareUnicodeCharacter{2662}{\ensuremath\diamondsuit}%
+  \DeclareUnicodeCharacter{2663}{\ensuremath\clubsuit}%
+  \DeclareUnicodeCharacter{266D}{\ensuremath\flat}%
+  \DeclareUnicodeCharacter{266E}{\ensuremath\natural}%
+  \DeclareUnicodeCharacter{266F}{\ensuremath\sharp}%
+  \DeclareUnicodeCharacter{26AA}{\ensuremath\bigcirc}%
+  \DeclareUnicodeCharacter{27B9}{\ensuremath\rangle}%
+  \DeclareUnicodeCharacter{27C2}{\ensuremath\perp}%
+  \DeclareUnicodeCharacter{27E8}{\ensuremath\langle}%
+  \DeclareUnicodeCharacter{27F5}{\ensuremath\longleftarrow}%
+  \DeclareUnicodeCharacter{27F6}{\ensuremath\longrightarrow}%
+  \DeclareUnicodeCharacter{27F7}{\ensuremath\longleftrightarrow}%
+  \DeclareUnicodeCharacter{27FC}{\ensuremath\longmapsto}%
+  \DeclareUnicodeCharacter{29F5}{\ensuremath\setminus}%
+  \DeclareUnicodeCharacter{2A00}{\ensuremath\bigodot}%
+  \DeclareUnicodeCharacter{2A01}{\ensuremath\bigoplus}%
+  \DeclareUnicodeCharacter{2A02}{\ensuremath\bigotimes}%
+  \DeclareUnicodeCharacter{2A04}{\ensuremath\biguplus}%
+  \DeclareUnicodeCharacter{2A06}{\ensuremath\bigsqcup}%
+  \DeclareUnicodeCharacter{2A1D}{\ensuremath\Join}%
+  \DeclareUnicodeCharacter{2A3F}{\ensuremath\amalg}%
+  \DeclareUnicodeCharacter{2AAF}{\ensuremath\preceq}%
+  \DeclareUnicodeCharacter{2AB0}{\ensuremath\succeq}%
+  %
+  \global\mathchardef\checkmark="1370% actually the square root sign
+  \DeclareUnicodeCharacter{2713}{\ensuremath\checkmark}%
+}% end of \unicodechardefs
+
+% UTF-8 byte sequence (pdfTeX) definitions (replacing and @U command)
+% It makes the setting that replace UTF-8 byte sequence.
 \def\utfeightchardefs{%
-  \DeclareUnicodeCharacter{00A0}{\tie}
-  \DeclareUnicodeCharacter{00A1}{\exclamdown}
-  \DeclareUnicodeCharacter{00A3}{\pounds}
-  \DeclareUnicodeCharacter{00A8}{\"{ }}
-  \DeclareUnicodeCharacter{00A9}{\copyright}
-  \DeclareUnicodeCharacter{00AA}{\ordf}
-  \DeclareUnicodeCharacter{00AB}{\guillemetleft}
-  \DeclareUnicodeCharacter{00AD}{\-}
-  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
-  \DeclareUnicodeCharacter{00AF}{\={ }}
-
-  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
-  \DeclareUnicodeCharacter{00B4}{\'{ }}
-  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
-  \DeclareUnicodeCharacter{00BA}{\ordm}
-  \DeclareUnicodeCharacter{00BB}{\guillemetright}
-  \DeclareUnicodeCharacter{00BF}{\questiondown}
-
-  \DeclareUnicodeCharacter{00C0}{\`A}
-  \DeclareUnicodeCharacter{00C1}{\'A}
-  \DeclareUnicodeCharacter{00C2}{\^A}
-  \DeclareUnicodeCharacter{00C3}{\~A}
-  \DeclareUnicodeCharacter{00C4}{\"A}
-  \DeclareUnicodeCharacter{00C5}{\AA}
-  \DeclareUnicodeCharacter{00C6}{\AE}
-  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
-  \DeclareUnicodeCharacter{00C8}{\`E}
-  \DeclareUnicodeCharacter{00C9}{\'E}
-  \DeclareUnicodeCharacter{00CA}{\^E}
-  \DeclareUnicodeCharacter{00CB}{\"E}
-  \DeclareUnicodeCharacter{00CC}{\`I}
-  \DeclareUnicodeCharacter{00CD}{\'I}
-  \DeclareUnicodeCharacter{00CE}{\^I}
-  \DeclareUnicodeCharacter{00CF}{\"I}
-
-  \DeclareUnicodeCharacter{00D0}{\DH}
-  \DeclareUnicodeCharacter{00D1}{\~N}
-  \DeclareUnicodeCharacter{00D2}{\`O}
-  \DeclareUnicodeCharacter{00D3}{\'O}
-  \DeclareUnicodeCharacter{00D4}{\^O}
-  \DeclareUnicodeCharacter{00D5}{\~O}
-  \DeclareUnicodeCharacter{00D6}{\"O}
-  \DeclareUnicodeCharacter{00D8}{\O}
-  \DeclareUnicodeCharacter{00D9}{\`U}
-  \DeclareUnicodeCharacter{00DA}{\'U}
-  \DeclareUnicodeCharacter{00DB}{\^U}
-  \DeclareUnicodeCharacter{00DC}{\"U}
-  \DeclareUnicodeCharacter{00DD}{\'Y}
-  \DeclareUnicodeCharacter{00DE}{\TH}
-  \DeclareUnicodeCharacter{00DF}{\ss}
-
-  \DeclareUnicodeCharacter{00E0}{\`a}
-  \DeclareUnicodeCharacter{00E1}{\'a}
-  \DeclareUnicodeCharacter{00E2}{\^a}
-  \DeclareUnicodeCharacter{00E3}{\~a}
-  \DeclareUnicodeCharacter{00E4}{\"a}
-  \DeclareUnicodeCharacter{00E5}{\aa}
-  \DeclareUnicodeCharacter{00E6}{\ae}
-  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
-  \DeclareUnicodeCharacter{00E8}{\`e}
-  \DeclareUnicodeCharacter{00E9}{\'e}
-  \DeclareUnicodeCharacter{00EA}{\^e}
-  \DeclareUnicodeCharacter{00EB}{\"e}
-  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
-  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
-  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
-  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
-
-  \DeclareUnicodeCharacter{00F0}{\dh}
-  \DeclareUnicodeCharacter{00F1}{\~n}
-  \DeclareUnicodeCharacter{00F2}{\`o}
-  \DeclareUnicodeCharacter{00F3}{\'o}
-  \DeclareUnicodeCharacter{00F4}{\^o}
-  \DeclareUnicodeCharacter{00F5}{\~o}
-  \DeclareUnicodeCharacter{00F6}{\"o}
-  \DeclareUnicodeCharacter{00F8}{\o}
-  \DeclareUnicodeCharacter{00F9}{\`u}
-  \DeclareUnicodeCharacter{00FA}{\'u}
-  \DeclareUnicodeCharacter{00FB}{\^u}
-  \DeclareUnicodeCharacter{00FC}{\"u}
-  \DeclareUnicodeCharacter{00FD}{\'y}
-  \DeclareUnicodeCharacter{00FE}{\th}
-  \DeclareUnicodeCharacter{00FF}{\"y}
-
-  \DeclareUnicodeCharacter{0100}{\=A}
-  \DeclareUnicodeCharacter{0101}{\=a}
-  \DeclareUnicodeCharacter{0102}{\u{A}}
-  \DeclareUnicodeCharacter{0103}{\u{a}}
-  \DeclareUnicodeCharacter{0104}{\ogonek{A}}
-  \DeclareUnicodeCharacter{0105}{\ogonek{a}}
-  \DeclareUnicodeCharacter{0106}{\'C}
-  \DeclareUnicodeCharacter{0107}{\'c}
-  \DeclareUnicodeCharacter{0108}{\^C}
-  \DeclareUnicodeCharacter{0109}{\^c}
-  \DeclareUnicodeCharacter{0118}{\ogonek{E}}
-  \DeclareUnicodeCharacter{0119}{\ogonek{e}}
-  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
-  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
-  \DeclareUnicodeCharacter{010C}{\v{C}}
-  \DeclareUnicodeCharacter{010D}{\v{c}}
-  \DeclareUnicodeCharacter{010E}{\v{D}}
-
-  \DeclareUnicodeCharacter{0112}{\=E}
-  \DeclareUnicodeCharacter{0113}{\=e}
-  \DeclareUnicodeCharacter{0114}{\u{E}}
-  \DeclareUnicodeCharacter{0115}{\u{e}}
-  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
-  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
-  \DeclareUnicodeCharacter{011A}{\v{E}}
-  \DeclareUnicodeCharacter{011B}{\v{e}}
-  \DeclareUnicodeCharacter{011C}{\^G}
-  \DeclareUnicodeCharacter{011D}{\^g}
-  \DeclareUnicodeCharacter{011E}{\u{G}}
-  \DeclareUnicodeCharacter{011F}{\u{g}}
-
-  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
-  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
-  \DeclareUnicodeCharacter{0124}{\^H}
-  \DeclareUnicodeCharacter{0125}{\^h}
-  \DeclareUnicodeCharacter{0128}{\~I}
-  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
-  \DeclareUnicodeCharacter{012A}{\=I}
-  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
-  \DeclareUnicodeCharacter{012C}{\u{I}}
-  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
-
-  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
-  \DeclareUnicodeCharacter{0131}{\dotless{i}}
-  \DeclareUnicodeCharacter{0132}{IJ}
-  \DeclareUnicodeCharacter{0133}{ij}
-  \DeclareUnicodeCharacter{0134}{\^J}
-  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
-  \DeclareUnicodeCharacter{0139}{\'L}
-  \DeclareUnicodeCharacter{013A}{\'l}
-
-  \DeclareUnicodeCharacter{0141}{\L}
-  \DeclareUnicodeCharacter{0142}{\l}
-  \DeclareUnicodeCharacter{0143}{\'N}
-  \DeclareUnicodeCharacter{0144}{\'n}
-  \DeclareUnicodeCharacter{0147}{\v{N}}
-  \DeclareUnicodeCharacter{0148}{\v{n}}
-  \DeclareUnicodeCharacter{014C}{\=O}
-  \DeclareUnicodeCharacter{014D}{\=o}
-  \DeclareUnicodeCharacter{014E}{\u{O}}
-  \DeclareUnicodeCharacter{014F}{\u{o}}
-
-  \DeclareUnicodeCharacter{0150}{\H{O}}
-  \DeclareUnicodeCharacter{0151}{\H{o}}
-  \DeclareUnicodeCharacter{0152}{\OE}
-  \DeclareUnicodeCharacter{0153}{\oe}
-  \DeclareUnicodeCharacter{0154}{\'R}
-  \DeclareUnicodeCharacter{0155}{\'r}
-  \DeclareUnicodeCharacter{0158}{\v{R}}
-  \DeclareUnicodeCharacter{0159}{\v{r}}
-  \DeclareUnicodeCharacter{015A}{\'S}
-  \DeclareUnicodeCharacter{015B}{\'s}
-  \DeclareUnicodeCharacter{015C}{\^S}
-  \DeclareUnicodeCharacter{015D}{\^s}
-  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
-  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
-
-  \DeclareUnicodeCharacter{0160}{\v{S}}
-  \DeclareUnicodeCharacter{0161}{\v{s}}
-  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
-  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
-  \DeclareUnicodeCharacter{0164}{\v{T}}
-
-  \DeclareUnicodeCharacter{0168}{\~U}
-  \DeclareUnicodeCharacter{0169}{\~u}
-  \DeclareUnicodeCharacter{016A}{\=U}
-  \DeclareUnicodeCharacter{016B}{\=u}
-  \DeclareUnicodeCharacter{016C}{\u{U}}
-  \DeclareUnicodeCharacter{016D}{\u{u}}
-  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
-  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
-
-  \DeclareUnicodeCharacter{0170}{\H{U}}
-  \DeclareUnicodeCharacter{0171}{\H{u}}
-  \DeclareUnicodeCharacter{0174}{\^W}
-  \DeclareUnicodeCharacter{0175}{\^w}
-  \DeclareUnicodeCharacter{0176}{\^Y}
-  \DeclareUnicodeCharacter{0177}{\^y}
-  \DeclareUnicodeCharacter{0178}{\"Y}
-  \DeclareUnicodeCharacter{0179}{\'Z}
-  \DeclareUnicodeCharacter{017A}{\'z}
-  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
-  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
-  \DeclareUnicodeCharacter{017D}{\v{Z}}
-  \DeclareUnicodeCharacter{017E}{\v{z}}
-
-  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
-  \DeclareUnicodeCharacter{01C5}{D\v{z}}
-  \DeclareUnicodeCharacter{01C6}{d\v{z}}
-  \DeclareUnicodeCharacter{01C7}{LJ}
-  \DeclareUnicodeCharacter{01C8}{Lj}
-  \DeclareUnicodeCharacter{01C9}{lj}
-  \DeclareUnicodeCharacter{01CA}{NJ}
-  \DeclareUnicodeCharacter{01CB}{Nj}
-  \DeclareUnicodeCharacter{01CC}{nj}
-  \DeclareUnicodeCharacter{01CD}{\v{A}}
-  \DeclareUnicodeCharacter{01CE}{\v{a}}
-  \DeclareUnicodeCharacter{01CF}{\v{I}}
-
-  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
-  \DeclareUnicodeCharacter{01D1}{\v{O}}
-  \DeclareUnicodeCharacter{01D2}{\v{o}}
-  \DeclareUnicodeCharacter{01D3}{\v{U}}
-  \DeclareUnicodeCharacter{01D4}{\v{u}}
-
-  \DeclareUnicodeCharacter{01E2}{\={\AE}}
-  \DeclareUnicodeCharacter{01E3}{\={\ae}}
-  \DeclareUnicodeCharacter{01E6}{\v{G}}
-  \DeclareUnicodeCharacter{01E7}{\v{g}}
-  \DeclareUnicodeCharacter{01E8}{\v{K}}
-  \DeclareUnicodeCharacter{01E9}{\v{k}}
-
-  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
-  \DeclareUnicodeCharacter{01F1}{DZ}
-  \DeclareUnicodeCharacter{01F2}{Dz}
-  \DeclareUnicodeCharacter{01F3}{dz}
-  \DeclareUnicodeCharacter{01F4}{\'G}
-  \DeclareUnicodeCharacter{01F5}{\'g}
-  \DeclareUnicodeCharacter{01F8}{\`N}
-  \DeclareUnicodeCharacter{01F9}{\`n}
-  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
-  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
-  \DeclareUnicodeCharacter{01FE}{\'{\O}}
-  \DeclareUnicodeCharacter{01FF}{\'{\o}}
-
-  \DeclareUnicodeCharacter{021E}{\v{H}}
-  \DeclareUnicodeCharacter{021F}{\v{h}}
-
-  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
-  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
-  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
-  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
-  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
-  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
-
-  \DeclareUnicodeCharacter{0232}{\=Y}
-  \DeclareUnicodeCharacter{0233}{\=y}
-  \DeclareUnicodeCharacter{0237}{\dotless{j}}
-
-  \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
-
-  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
-  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
-  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
-  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
-  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
-  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
-  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
-  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
-  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
-  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
-  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
-  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
-
-  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
-  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
-
-  \DeclareUnicodeCharacter{1E20}{\=G}
-  \DeclareUnicodeCharacter{1E21}{\=g}
-  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
-  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
-  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
-  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
-  \DeclareUnicodeCharacter{1E26}{\"H}
-  \DeclareUnicodeCharacter{1E27}{\"h}
-
-  \DeclareUnicodeCharacter{1E30}{\'K}
-  \DeclareUnicodeCharacter{1E31}{\'k}
-  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
-  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
-  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
-  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
-  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
-  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
-  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
-  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
-  \DeclareUnicodeCharacter{1E3E}{\'M}
-  \DeclareUnicodeCharacter{1E3F}{\'m}
-
-  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
-  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
-  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
-  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
-  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
-  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
-  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
-  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
-  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
-  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
-
-  \DeclareUnicodeCharacter{1E54}{\'P}
-  \DeclareUnicodeCharacter{1E55}{\'p}
-  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
-  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
-  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
-  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
-  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
-  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
-  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
-  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
-
-  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
-  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
-  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
-  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
-  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
-  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
-  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
-  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
-  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
-  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
-
-  \DeclareUnicodeCharacter{1E7C}{\~V}
-  \DeclareUnicodeCharacter{1E7D}{\~v}
-  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
-  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
-
-  \DeclareUnicodeCharacter{1E80}{\`W}
-  \DeclareUnicodeCharacter{1E81}{\`w}
-  \DeclareUnicodeCharacter{1E82}{\'W}
-  \DeclareUnicodeCharacter{1E83}{\'w}
-  \DeclareUnicodeCharacter{1E84}{\"W}
-  \DeclareUnicodeCharacter{1E85}{\"w}
-  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
-  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
-  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
-  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
-  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
-  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
-  \DeclareUnicodeCharacter{1E8C}{\"X}
-  \DeclareUnicodeCharacter{1E8D}{\"x}
-  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
-  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
-
-  \DeclareUnicodeCharacter{1E90}{\^Z}
-  \DeclareUnicodeCharacter{1E91}{\^z}
-  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
-  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
-  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
-  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
-  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
-  \DeclareUnicodeCharacter{1E97}{\"t}
-  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
-  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
-
-  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
-  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
-
-  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
-  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
-  \DeclareUnicodeCharacter{1EBC}{\~E}
-  \DeclareUnicodeCharacter{1EBD}{\~e}
-
-  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
-  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
-  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
-  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
-
-  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
-  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
-
-  \DeclareUnicodeCharacter{1EF2}{\`Y}
-  \DeclareUnicodeCharacter{1EF3}{\`y}
-  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
-
-  \DeclareUnicodeCharacter{1EF8}{\~Y}
-  \DeclareUnicodeCharacter{1EF9}{\~y}
-
-  \DeclareUnicodeCharacter{2013}{--}
-  \DeclareUnicodeCharacter{2014}{---}
-  \DeclareUnicodeCharacter{2018}{\quoteleft}
-  \DeclareUnicodeCharacter{2019}{\quoteright}
-  \DeclareUnicodeCharacter{201A}{\quotesinglbase}
-  \DeclareUnicodeCharacter{201C}{\quotedblleft}
-  \DeclareUnicodeCharacter{201D}{\quotedblright}
-  \DeclareUnicodeCharacter{201E}{\quotedblbase}
-  \DeclareUnicodeCharacter{2022}{\bullet}
-  \DeclareUnicodeCharacter{2026}{\dots}
-  \DeclareUnicodeCharacter{2039}{\guilsinglleft}
-  \DeclareUnicodeCharacter{203A}{\guilsinglright}
-  \DeclareUnicodeCharacter{20AC}{\euro}
-
-  \DeclareUnicodeCharacter{2192}{\expansion}
-  \DeclareUnicodeCharacter{21D2}{\result}
-
-  \DeclareUnicodeCharacter{2212}{\minus}
-  \DeclareUnicodeCharacter{2217}{\point}
-  \DeclareUnicodeCharacter{2261}{\equiv}
-}% end of \utfeightchardefs
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterUTFviii
+  \unicodechardefs
+}
+
+% Whether the active definitions of non-ASCII characters expand to
+% non-active tokens with the same character code.  This is used to
+% write characters literally, instead of using active definitions for
+% printing the correct glyphs.
+\newif\ifpassthroughchars
+\passthroughcharsfalse
+
+% For native Unicode handling (XeTeX and LuaTeX),
+% provide a definition macro to replace/pass-through a Unicode character
+%
+\def\DeclareUnicodeCharacterNative#1#2{%
+  \catcode"#1=\active
+  \def\dodeclareunicodecharacternative##1##2##3{%
+    \begingroup
+      \uccode`\~="##2\relax
+      \uppercase{\gdef~}{%
+        \ifpassthroughchars
+          ##1%
+        \else
+          ##3%
+        \fi
+      }
+    \endgroup
+  }
+  \begingroup
+    \uccode`\.="#1\relax
+    \uppercase{\def\UTFNativeTmp{.}}%
+    \expandafter\dodeclareunicodecharacternative\UTFNativeTmp{#1}{#2}%
+  \endgroup
+}
+
+% Native Unicode handling (XeTeX and LuaTeX) character replacing definition.
+% It activates the setting that replaces Unicode characters.
+\def\nativeunicodechardefs{%
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNative
+  \unicodechardefs
+}
+
+% For native Unicode handling (XeTeX and LuaTeX),
+% make the character token expand
+% to the sequences given in \unicodechardefs for printing.
+\def\DeclareUnicodeCharacterNativeAtU#1#2{%
+  \def\UTFAtUTmp{#2}
+  \expandafter\globallet\csname uni:#1\endcsname \UTFAtUTmp
+}
 
+% @U command definitions for native Unicode handling (XeTeX and LuaTeX).
+\def\nativeunicodechardefsatu{%
+  \let\DeclareUnicodeCharacter\DeclareUnicodeCharacterNativeAtU
+  \unicodechardefs
+}
 
 % US-ASCII character definitions.
 \def\asciichardefs{% nothing need be done
    \relax
 }
 
+% define all Unicode characters we know about, for the sake of @U.
+\iftxinativeunicodecapable
+  \nativeunicodechardefsatu
+\else
+  \utfeightchardefs
+\fi
+
+
 % Make non-ASCII characters printable again for compatibility with
 % existing Texinfo documents that may use them, even without declaring a
 % document encoding.
@@ -9708,12 +11319,12 @@ directory should work if nowhere else does.}
   \advance\vsize by \topskip
   \outervsize = \vsize
   \advance\outervsize by 2\topandbottommargin
-  \pageheight = \vsize
+  \txipageheight = \vsize
   %
   \hsize = #2\relax
   \outerhsize = \hsize
   \advance\outerhsize by 0.5in
-  \pagewidth = \hsize
+  \txipagewidth = \hsize
   %
   \normaloffset = #4\relax
   \bindingoffset = #5\relax
@@ -9725,6 +11336,13 @@ directory should work if nowhere else does.}
     % whatever layout pdftex was dumped with.
     \pdfhorigin = 1 true in
     \pdfvorigin = 1 true in
+  \else
+    \ifx\XeTeXrevision\thisisundefined
+    \else
+      \pdfpageheight #7\relax
+      \pdfpagewidth #8\relax
+      % XeTeX does not have \pdfhorigin and \pdfvorigin.
+    \fi
   \fi
   %
   \setleading{\textleading}
@@ -9912,44 +11530,47 @@ directory should work if nowhere else does.}
 % this is not a problem.
 \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
 
-% Turn off all special characters except @
-% (and those which the user can use as if they were ordinary).
+% Set catcodes for Texinfo file
+
+% Active characters for printing the wanted glyph.
 % Most of these we simply print from the \tt font, but for some, we can
 % use math or other variants that look better in normal text.
-
+%
 \catcode`\"=\active
 \def\activedoublequote{{\tt\char34}}
 \let"=\activedoublequote
-\catcode`\~=\active
-\def~{{\tt\char126}}
-\chardef\hat=`\^
-\catcode`\^=\active
-\def^{{\tt \hat}}
+\catcode`\~=\active \def\activetilde{{\tt\char126}} \let~ = \activetilde
+\chardef\hatchar=`\^
+\catcode`\^=\active \def\activehat{{\tt \hatchar}} \let^ = \activehat
 
 \catcode`\_=\active
 \def_{\ifusingtt\normalunderscore\_}
-\let\realunder=_
-% Subroutine for the previous macro.
 \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+\let\realunder=_
+
+\catcode`\|=\active \def|{{\tt\char124}}
 
-\catcode`\|=\active
-\def|{{\tt\char124}}
 \chardef \less=`\<
-\catcode`\<=\active
-\def<{{\tt \less}}
+\catcode`\<=\active \def\activeless{{\tt \less}}\let< = \activeless
 \chardef \gtr=`\>
-\catcode`\>=\active
-\def>{{\tt \gtr}}
-\catcode`\+=\active
-\def+{{\tt \char 43}}
-\catcode`\$=\active
-\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+\catcode`\>=\active \def\activegtr{{\tt \gtr}}\let> = \activegtr
+\catcode`\+=\active \def+{{\tt \char 43}}
+\catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+\catcode`\-=\active \let-=\normaldash
 
-% 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 \everyjob (or @setfilename) turn them on.
-% \otherifyactive is called near the end of this file.
-\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+% used for headline/footline in the output routine, in case the page
+% breaks in the middle of an @tex block.
+\def\texinfochars{%
+  \let< = \activeless
+  \let> = \activegtr
+  \let~ = \activetilde 
+  \let^ = \activehat
+  \markupsetuplqdefault \markupsetuprqdefault 
+  \let\b = \strong
+  \let\i = \smartitalic
+  % in principle, all other definitions in \tex have to be undone too.
+}
 
 % Used sometimes to turn off (effectively) the active characters even after
 % parsing them.
@@ -9969,23 +11590,22 @@ directory should work if nowhere else does.}
 % \doublebackslash is two of them (for the pdf outlines).
 {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
 
-% In texinfo, backslash is an active character; it prints the backslash
+% In Texinfo, backslash is an active character; it prints the backslash
 % in fixed width font.
 \catcode`\\=\active  % @ for escape char from now on.
 
-% The story here is that in math mode, the \char of \backslashcurfont
-% ends up printing the roman \ from the math symbol font (because \char
-% in math mode uses the \mathcode, and plain.tex sets
-% \mathcode`\\="026E).  It seems better for @backslashchar{} to always
-% print a typewriter backslash, hence we use an explicit \mathchar,
+% 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
+% font (because \char in math mode uses the \mathcode, and plain.tex
+% sets \mathcode`\\="026E).  Hence we use an explicit \mathchar,
 % which is the decimal equivalent of "715c (class 7, e.g., use \fam;
 % ignored family value; char position "5C).  We can't use " for the
 % usual hex value because it has already been made active.
-@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
-@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
 
-% On startup, @fixbackslash assigns:
-%  @let \ = @normalbackslash
+@def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
+
 % \rawbackslash defines an active \ to do \backslashcurfont.
 % \otherbackslash defines an active \ to be a literal `\' character with
 % catcode other.  We switch back and forth between these.
@@ -9993,51 +11613,89 @@ directory should work if nowhere else does.}
 @gdef@otherbackslash{@let\=@realbackslash}
 
 % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.  Also revert - to its normal character, in
-% case the active - from code has slipped in.
+% the literal character `\'.
 %
 {@catcode`- = @active
  @gdef@normalturnoffactive{%
+   @passthroughcharstrue
    @let-=@normaldash
    @let"=@normaldoublequote
    @let$=@normaldollar %$ font-lock fix
    @let+=@normalplus
    @let<=@normalless
    @let>=@normalgreater
-   @let\=@normalbackslash
    @let^=@normalcaret
    @let_=@normalunderscore
    @let|=@normalverticalbar
    @let~=@normaltilde
+   @let\=@ttbackslash
    @markupsetuplqdefault
    @markupsetuprqdefault
    @unsepspaces
  }
 }
 
-% Make _ and + \other characters, temporarily.
-% This is canceled by @fixbackslash.
-@otherifyactive
+% 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.
-%
-@gdef@eatinput input texinfo{@fixbackslash}
-@global@let\ = @eatinput
+% 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}%
+}}
+
+{@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%
+}}}
+
 
-% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\' in the file would cause an error. This macro tries to fix
-% that, assuming it is called before the first `\' could plausibly occur.
-% Also turn back on active characters that might appear in the input
-% file name, in case not using a pre-dumped format.
-%
 @gdef@fixbackslash{%
-  @ifx\@eatinput @let\ = @normalbackslash @fi
+  @ifx\@eatinput @let\ = @ttbackslash @fi
+  @catcode13=5 % regular end of line
+  @enableemergencynewline
+  @let@c=@texinfoc
+  % 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.
+  %
+  @openin 1 texinfo.cnf
+  @ifeof 1 @else @input texinfo.cnf @fi
+  @closein 1
 }
 
+
 % Say @foo, not \foo, in error messages.
 @escapechar = `@@
 
@@ -10066,7 +11724,7 @@ directory should work if nowhere else does.}
 
 @c Local variables:
 @c eval: (add-hook 'write-file-hooks 'time-stamp)
-@c page-delimiter: "^\\\\message"
+@c page-delimiter: "^\\\\message\\|emacs-page"
 @c time-stamp-start: "def\\\\texinfoversion{"
 @c time-stamp-format: "%:y-%02m-%02d.%02H"
 @c time-stamp-end: "}"
@@ -10077,3 +11735,4 @@ directory should work if nowhere else does.}
 @ignore
    arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
 @end ignore
+@enablebackslashhack
index c72d0e6..17ee6b1 100755 (executable)
@@ -1,11 +1,11 @@
-eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}'
+eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" "$@"'
   & eval 'exec perl -wS -0777 -pi "$0" $argv:q'
     if 0;
 # Update an FSF copyright year list to include the current year.
 
-my $VERSION = '2013-01-03.09:41'; # UTC
+my $VERSION = '2016-01-12.23:13'; # UTC
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -124,7 +124,7 @@ use strict;
 use warnings;
 
 my $copyright_re = 'Copyright';
-my $circle_c_re = '(?:\([cC]\)|@copyright{}|&copy;)';
+my $circle_c_re = '(?:\([cC]\)|@copyright\{}|\\\\\(co|&copy;)';
 my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER};
 $holder ||= 'Free Software Foundation, Inc.';
 my $prefix_max = 5;
@@ -269,6 +269,6 @@ else
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "my $VERSION = '"
 # time-stamp-format: "%:y-%02m-%02d.%02H:%02M"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "'; # UTC"
 # End:
index 663347a..d7a8c0d 100755 (executable)
@@ -1,16 +1,16 @@
-eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}'
+eval '(exit $?0)' && eval 'exec perl -wST "$0" "$@"'
   & eval 'exec perl -wST "$0" $argv:q'
     if 0;
 # Detect instances of "if (p) free (p);".
 # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
 
-my $VERSION = '2012-01-06 07:23'; # UTC
+my $VERSION = '2016-08-01 17:47'; # 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.
 
-# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -129,6 +129,9 @@ sub is_NULL ($)
           $err = EXIT_ERROR, next;
       while (defined (my $line = <FH>))
         {
+          # Skip non-matching lines early to save time
+          $line =~ /\bif\b/
+            or next;
           while ($line =~
               /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\)
               #  1          2                  3
@@ -202,6 +205,6 @@ EOF
 ## eval: (add-hook 'write-file-hooks 'time-stamp)
 ## time-stamp-start: "my $VERSION = '"
 ## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
-## time-stamp-time-zone: "UTC"
+## time-stamp-time-zone: "UTC0"
 ## time-stamp-end: "'; # UTC"
 ## End:
index 7ec335f..c5c420a 100755 (executable)
@@ -2,9 +2,9 @@
 # List version-controlled file names.
 
 # Print a version string.
-scriptversion=2011-05-16.22; # UTC
+scriptversion=2016-01-11.22; # UTC
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -108,6 +108,6 @@ done
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# time-stamp-time-zone: "UTC0"
 # time-stamp-end: "; # UTC"
 # End:
diff --git a/cfg.mk b/cfg.mk
index 9e31187..83e7860 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -1,5 +1,5 @@
 # Customize maint.mk                           -*- makefile -*-
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This 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/>.
 
+# Use the direct link.  This is guaranteed to work immediately, while
+# it can take a while for the faster mirror links to become usable.
+url_dir_list = http://ftp.gnu.org/gnu/$(PACKAGE)
+
 # Used in maint.mk's web-manual rule
 manual_title = Comparing and Merging Files
 
@@ -29,7 +33,7 @@ bootstrap-tools = autoconf,automake,gnulib
 # Now that we have better tests, make this the default.
 export VERBOSE = yes
 
-old_NEWS_hash = 7d70c18e90495732e671b3c94da01651
+old_NEWS_hash = 8632093db0c946f65f639f06ac7de39a
 
 # Tell maint.mk's syntax-check rules that diff gets config.h directly or
 # via diff.h or system.h.
index eb90ca6..14431ce 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.69.79-0bdae for GNU diffutils 3.3.
+# Generated by GNU Autoconf 2.69.147-5ad35 for GNU diffutils 3.4.
 #
 # Report bugs to <bug-diffutils@gnu.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2013 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2015 Free Software Foundation, Inc.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -16,7 +16,8 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -34,7 +35,7 @@ fi
 
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -87,7 +88,7 @@ fi
 # suppresses any "Segmentation fault" message there.  '((' could
 # trigger a bug in pdksh 5.2.14.
 for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
+do eval test \${$as_var+y} \
   && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
@@ -129,7 +130,8 @@ as_fn_exit 255
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
@@ -156,7 +158,8 @@ as_fn_success || { exitcode=1; echo as_fn_success failed.; }
 as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
 as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
 as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
 
 else
   exitcode=1; echo positional parameters were not saved.
@@ -168,12 +171,14 @@ test -x / || exit 1"
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
 test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
+  if (eval "$as_required") 2>/dev/null
+then :
   as_have_required=yes
 else
   as_have_required=no
 fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
 
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -193,9 +198,11 @@ do
             # Try only shells that exist, to save several forks.
             as_shell=$as_dir$as_base
             if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null
+then :
   CONFIG_SHELL=$as_shell as_have_required=yes
-                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null
+then :
   break 2
 fi
 fi
@@ -205,12 +212,14 @@ fi
 done
 IFS=$as_save_IFS
 $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null
+then :
   CONFIG_SHELL=$SHELL as_have_required=yes
 fi; }
 
 
-      if test "x$CONFIG_SHELL" != x; then :
+      if test "x$CONFIG_SHELL" != x
+then :
   export CONFIG_SHELL
              # We cannot yet assume a decent shell, so we have to provide a
 # neutralization value for shells without unset; and this also
@@ -232,10 +241,11 @@ printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
 
-    if test x$as_have_required = xno; then :
+    if test x$as_have_required = xno
+then :
   printf "%s\n" "$0: This script requires a shell more modern than all"
   printf "%s\n" "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
+  if test ${ZSH_VERSION+y} ; then
     printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
     printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
   else
@@ -346,7 +356,8 @@ as_fn_executable_p ()
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
@@ -363,7 +374,8 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
@@ -553,31 +565,24 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU diffutils'
 PACKAGE_TARNAME='diffutils'
-PACKAGE_VERSION='3.3'
-PACKAGE_STRING='GNU diffutils 3.3'
+PACKAGE_VERSION='3.4'
+PACKAGE_STRING='GNU diffutils 3.4'
 PACKAGE_BUGREPORT='bug-diffutils@gnu.org'
 PACKAGE_URL='http://www.gnu.org/software/diffutils/'
 
 ac_unique_file="src/diff.c"
 # Factoring default headers for most tests.
 ac_includes_default="\
+#include <stddef.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #ifdef HAVE_SYS_TYPES_H
 # include <sys/types.h>
 #endif
 #ifdef HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-#include <stddef.h>
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
 #ifdef HAVE_STRINGS_H
 # include <strings.h>
 #endif
@@ -591,8 +596,8 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_func_list=
 ac_header_list=
+ac_func_list=
 gl_fnmatch_required=POSIX
 gl_getopt_required=POSIX
 gl_getopt_required=POSIX
@@ -628,7 +633,66 @@ LIBTESTS_LIBDEPS
 LIBDIFFUTILS_LTLIBDEPS
 LIBDIFFUTILS_LIBDEPS
 abs_aux_dir
+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_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
+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
+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
+GNULIB_SELECT
+GNULIB_PSELECT
+INET_PTON_LIB
 LOCALE_TR_UTF8
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H
+NEXT_ARPA_INET_H
+HAVE_ARPA_INET_H
+REPLACE_INET_PTON
+REPLACE_INET_NTOP
+HAVE_DECL_INET_PTON
+HAVE_DECL_INET_NTOP
+GNULIB_INET_PTON
+GNULIB_INET_NTOP
+HAVE_WS2TCPIP_H
+HAVE_SYS_SOCKET_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H
+NEXT_SYS_SOCKET_H
+HAVE_ACCEPT4
+HAVE_SA_FAMILY_T
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
+HAVE_STRUCT_SOCKADDR_STORAGE
+GNULIB_ACCEPT4
+GNULIB_SHUTDOWN
+GNULIB_SETSOCKOPT
+GNULIB_SENDTO
+GNULIB_RECVFROM
+GNULIB_SEND
+GNULIB_RECV
+GNULIB_LISTEN
+GNULIB_GETSOCKOPT
+GNULIB_GETSOCKNAME
+GNULIB_GETPEERNAME
+GNULIB_BIND
+GNULIB_ACCEPT
+GNULIB_CONNECT
+GNULIB_SOCKET
 gltests_WITNESS
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
 NEXT_WCHAR_H
@@ -645,6 +709,7 @@ LIBUNISTRING_UNISTR_H
 HAVE_UNISTD_H
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
 NEXT_UNISTD_H
+UNISTD_H_DEFINES_STRUCT_TIMESPEC
 PTHREAD_H_DEFINES_STRUCT_TIMESPEC
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
 TIME_H_DEFINES_STRUCT_TIMESPEC
@@ -696,6 +761,8 @@ GNULIB_SIGPROCMASK
 GNULIB_SIGNAL_H_SIGPIPE
 GNULIB_RAISE
 GNULIB_PTHREAD_SIGMASK
+REPLACE_LOCALTIME
+REPLACE_GMTIME
 REPLACE_TIMEGM
 REPLACE_NANOSLEEP
 REPLACE_MKTIME
@@ -704,6 +771,7 @@ HAVE_TIMEGM
 HAVE_STRPTIME
 HAVE_NANOSLEEP
 HAVE_DECL_LOCALTIME_R
+GNULIB_TIME_RZ
 GNULIB_TIME_R
 GNULIB_TIMEGM
 GNULIB_STRPTIME
@@ -792,6 +860,7 @@ REPLACE_SETENV
 REPLACE_REALPATH
 REPLACE_REALLOC
 REPLACE_RANDOM_R
+REPLACE_QSORT_R
 REPLACE_PUTENV
 REPLACE_PTSNAME_R
 REPLACE_PTSNAME
@@ -843,6 +912,7 @@ GNULIB_REALPATH
 GNULIB_REALLOC_POSIX
 GNULIB_RANDOM_R
 GNULIB_RANDOM
+GNULIB_QSORT_R
 GNULIB_PUTENV
 GNULIB_PTSNAME_R
 GNULIB_PTSNAME
@@ -861,6 +931,7 @@ GNULIB_CANONICALIZE_FILE_NAME
 GNULIB_CALLOC_POSIX
 GNULIB_ATOLL
 GNULIB__EXIT
+SED
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H
 NEXT_LOCALE_H
 HAVE_XLOCALE_H
@@ -870,6 +941,7 @@ GL_GENERATE_STDDEF_H_FALSE
 GL_GENERATE_STDDEF_H_TRUE
 STDDEF_H
 HAVE_WCHAR_T
+HAVE_MAX_ALIGN_T
 REPLACE_NULL
 REPLACE_STRUCT_LCONV
 REPLACE_DUPLOCALE
@@ -915,6 +987,7 @@ PRIPTR_PREFIX
 PRI_MACROS_BROKEN
 INT64_MAX_EQ_LONG_MAX
 INT32_MAX_LT_INTMAX_MAX
+REPLACE_STRTOUMAX
 REPLACE_STRTOIMAX
 HAVE_DECL_STRTOUMAX
 HAVE_DECL_STRTOIMAX
@@ -969,6 +1042,7 @@ NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H
 NEXT_SYS_TIME_H
 REPLACE_STRUCT_TIMEVAL
 REPLACE_GETTIMEOFDAY
+HAVE_TIMEZONE_T
 HAVE_SYS_TIME_H
 HAVE_STRUCT_TIMEVAL
 HAVE_GETTIMEOFDAY
@@ -1148,13 +1222,21 @@ GL_GENERATE_ERRNO_H_TRUE
 ERRNO_H
 NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
 NEXT_ERRNO_H
+NEXT_AS_FIRST_DIRECTIVE_CTYPE_H
+NEXT_CTYPE_H
 PRAGMA_COLUMNS
 PRAGMA_SYSTEM_HEADER
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE
 INCLUDE_NEXT
+HAVE_ISBLANK
+GNULIB_ISBLANK
 pkglibexecdir
 lispdir
 HAVE_WINSOCK2_H
+REPLACE_IOCTL
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
+SYS_IOCTL_H_HAVE_WINSOCK2_H
+GNULIB_IOCTL
 HAVE_MSVC_INVALID_PARAMETER_HANDLER
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS
 UNISTD_H_HAVE_WINSOCK2_H
@@ -1163,9 +1245,11 @@ REPLACE_USLEEP
 REPLACE_UNLINKAT
 REPLACE_UNLINK
 REPLACE_TTYNAME_R
+REPLACE_SYMLINKAT
 REPLACE_SYMLINK
 REPLACE_SLEEP
 REPLACE_RMDIR
+REPLACE_READLINKAT
 REPLACE_READLINK
 REPLACE_READ
 REPLACE_PWRITE
@@ -1178,6 +1262,7 @@ REPLACE_ISATTY
 REPLACE_GETPAGESIZE
 REPLACE_GETGROUPS
 REPLACE_GETLOGIN_R
+REPLACE_GETDTABLESIZE
 REPLACE_GETDOMAINNAME
 REPLACE_GETCWD
 REPLACE_FTRUNCATE
@@ -1390,6 +1475,7 @@ build_vendor
 build_cpu
 build
 ARFLAGS
+ac_ct_AR
 AR
 EGREP
 GREP
@@ -1403,7 +1489,6 @@ am__nodep
 AMDEPBACKSLASH
 AMDEP_FALSE
 AMDEP_TRUE
-am__quote
 am__include
 DEPDIR
 OBJEXT
@@ -1438,6 +1523,7 @@ am__isrc
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
+mkdir_p
 target_alias
 host_alias
 build_alias
@@ -1457,6 +1543,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -1475,7 +1562,8 @@ PACKAGE_VERSION
 PACKAGE_TARNAME
 PACKAGE_NAME
 PATH_SEPARATOR
-SHELL'
+SHELL
+am__quote'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
@@ -1541,6 +1629,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1612,7 +1701,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
@@ -1638,7 +1727,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
@@ -1793,6 +1882,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1842,7 +1940,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
@@ -1858,7 +1956,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
@@ -1930,7 +2028,7 @@ fi
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -2043,7 +2141,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.3 to adapt to many kinds of systems.
+\`configure' configures GNU diffutils 3.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2083,6 +2181,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -2113,7 +2212,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU diffutils 3.3:";;
+     short | recursive ) echo "Configuration of GNU diffutils 3.4:";;
    esac
   cat <<\_ACEOF
 
@@ -2229,10 +2328,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU diffutils configure 3.3
-generated by GNU Autoconf 2.69.79-0bdae
+GNU diffutils configure 3.4
+generated by GNU Autoconf 2.69.147-5ad35
 
-Copyright (C) 2013 Free Software Foundation, Inc.
+Copyright (C) 2015 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -2268,7 +2367,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   test $ac_status = 0; } && {
         test -z "$ac_c_werror_flag" ||
         test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
+       } && test -s conftest.$ac_objext
+then :
   ac_retval=0
 else
   printf "%s\n" "$as_me: failed program was:" >&5
 
 } # ac_fn_c_try_compile
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  printf "%s\n" "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 printf %s "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval test \${$3+y}
+then :
   printf %s "(cached) " >&6
-fi
-eval ac_res=\$$3
-              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-printf %s "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$3=yes"
 else
-  ac_header_compiler=no
+  eval "$3=no"
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-printf "%s\n" "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-printf %s "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-printf "%s\n" "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-printf "%s\n" "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-printf "%s\n" "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-printf "%s\n" "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-printf "%s\n" "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-printf "%s\n" "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-printf "%s\n" "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-printf "%s\n" "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-( printf "%s\n" "## ------------------------------------ ##
-## Report this to bug-diffutils@gnu.org ##
-## ------------------------------------ ##"
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  printf %s "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
 fi
 eval ac_res=\$$3
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-fi
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
-} # ac_fn_c_check_header_mongrel
+} # ac_fn_c_check_header_compile
 
-# ac_fn_c_try_run LINENO
+# ac_fn_c_try_cpp LINENO
 # ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
   ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }
+then :
   ac_retval=0
 else
-  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
-       printf "%s\n" "$as_me: failed program was:" >&5
+  printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=$ac_status
+    ac_retval=1
 fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-printf %s "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  printf %s "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-              { 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_fn_c_check_header_compile
+} # ac_fn_c_try_cpp
 
 # ac_fn_c_check_type LINENO TYPE VAR INCLUDES
 # -------------------------------------------
@@ -2491,7 +2461,8 @@ ac_fn_c_check_type ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 printf %s "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval test \${$3+y}
+then :
   printf %s "(cached) " >&6
 else
   eval "$3=no"
@@ -2499,7 +2470,7 @@ else
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 if (sizeof ($2))
         return 0;
@@ -2507,12 +2478,13 @@ if (sizeof ($2))
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 if (sizeof (($2)))
            return 0;
@@ -2520,7 +2492,8 @@ if (sizeof (($2)))
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
 else
   eval "$3=yes"
@@ -2564,7 +2537,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
        } && test -s conftest$ac_exeext && {
         test "$cross_compiling" = yes ||
         test -x conftest$ac_exeext
-       }; then :
+       }
+then :
   ac_retval=0
 else
   printf "%s\n" "$as_me: failed program was:" >&5
@@ -2590,7 +2564,8 @@ ac_fn_c_check_func ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 printf %s "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
+if eval test \${$3+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2620,14 +2595,15 @@ choke me
 #endif
 
 int
-main ()
+main (void)
 {
 return $2 ();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$3=yes"
 else
   eval "$3=no"
@@ -2642,6 +2618,49 @@ printf "%s\n" "$ac_res" >&6; }
 
 } # ac_fn_c_check_func
 
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }
+then :
+  ac_retval=0
+else
+  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
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
 # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
 # ---------------------------------------------
 # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -2649,18 +2668,22 @@ printf "%s\n" "$ac_res" >&6; }
 ac_fn_c_check_decl ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  as_decl_name=`echo $2|sed 's/ *(.*//'`
+  # Initialize each $ac_[]_AC_LANG_ABBREV[]_decl_warn_flag once.
+      as_decl_name=`echo $2|sed 's/ *(.*//'`
   as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
   { 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 \${$3+:} false; then :
+if eval test \${$3+y}
+then :
   printf %s "(cached) " >&6
 else
+  ac_save_werror_flag=$ac_c_werror_flag
+  ac_c_werror_flag="$ac_c_decl_warn_flag$ac_c_werror_flag"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 #ifndef $as_decl_name
 #ifdef __cplusplus
@@ -2674,7 +2697,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$3=yes"
 else
   eval "$3=no"
@@ -2684,6 +2708,7 @@ fi
 eval ac_res=\$$3
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
+  ac_c_werror_flag=$ac_save_werror_flag
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_decl
@@ -2702,7 +2727,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 static int test_array [1 - 2 * !(($2) >= 0)];
 test_array [0] = 0;
@@ -2712,14 +2737,15 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_lo=0 ac_mid=0
   while :; do
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
 test_array [0] = 0;
@@ -2729,7 +2755,8 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_hi=$ac_mid; break
 else
   as_fn_arith $ac_mid + 1 && ac_lo=$as_val
@@ -2746,7 +2773,7 @@ else
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 static int test_array [1 - 2 * !(($2) < 0)];
 test_array [0] = 0;
@@ -2756,14 +2783,15 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_hi=-1 ac_mid=-1
   while :; do
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 static int test_array [1 - 2 * !(($2) >= $ac_mid)];
 test_array [0] = 0;
@@ -2773,7 +2801,8 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_lo=$ac_mid; break
 else
   as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
@@ -2798,7 +2827,7 @@ while test "x$ac_lo" != "x$ac_hi"; do
 /* end confdefs.h.  */
 $4
 int
-main ()
+main (void)
 {
 static int test_array [1 - 2 * !(($2) <= $ac_mid)];
 test_array [0] = 0;
@@ -2808,7 +2837,8 @@ return test_array [0];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_hi=$ac_mid
 else
   as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
@@ -2828,7 +2858,7 @@ static unsigned long int ulongval () { return $2; }
 #include <stdio.h>
 #include <stdlib.h>
 int
-main ()
+main (void)
 {
 
   FILE *f = fopen ("conftest.val", "w");
@@ -2856,7 +2886,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   echo >>conftest.val; read $3 <conftest.val; ac_retval=0
 else
   ac_retval=1
@@ -2880,14 +2911,15 @@ ac_fn_c_check_member ()
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
 printf %s "checking for $2.$3... " >&6; }
-if eval \${$4+:} false; then :
+if eval test \${$4+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
-main ()
+main (void)
 {
 static $2 ac_aggr;
 if (ac_aggr.$3)
@@ -2896,14 +2928,15 @@ return 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$4=yes"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $5
 int
-main ()
+main (void)
 {
 static $2 ac_aggr;
 if (sizeof ac_aggr.$3)
@@ -2912,7 +2945,8 @@ return 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$4=yes"
 else
   eval "$4=no"
@@ -2931,8 +2965,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.3, which was
-generated by GNU Autoconf 2.69.79-0bdae.  Invocation command line was
+It was created by GNU diffutils $as_me 3.4, which was
+generated by GNU Autoconf 2.69.147-5ad35.  Invocation command line was
 
   $ $0 $@
 
@@ -3217,14 +3251,20 @@ printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
+as_fn_append ac_header_list " sys/types.h"
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_header_list " strings.h"
+as_fn_append ac_header_list " inttypes.h"
+as_fn_append ac_header_list " stdint.h"
+as_fn_append ac_header_list " unistd.h"
 as_fn_append ac_func_list " btowc"
 as_fn_append ac_func_list " setrlimit"
 as_fn_append ac_header_list " ucontext.h"
 as_fn_append ac_func_list " sigaltstack"
-as_fn_append ac_header_list " unistd.h"
 as_fn_append ac_func_list " readlinkat"
 as_fn_append ac_func_list " _set_invalid_parameter_handler"
 as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " strerror_r"
 as_fn_append ac_func_list " fcntl"
 as_fn_append ac_func_list " symlink"
 as_fn_append ac_func_list " mempcpy"
@@ -3236,7 +3276,6 @@ as_fn_append ac_func_list " wmemcpy"
 as_fn_append ac_func_list " wmempcpy"
 as_fn_append ac_header_list " wctype.h"
 gl_fnmatch_required=GNU
-as_fn_append ac_header_list " sys/stat.h"
 as_fn_append ac_func_list " getdtablesize"
 gl_getopt_required=GNU
 as_fn_append ac_header_list " getopt.h"
@@ -3245,8 +3284,6 @@ as_fn_append ac_func_list " nanotime"
 as_fn_append ac_header_list " sys/time.h"
 as_fn_append ac_header_list " iconv.h"
 as_fn_append ac_header_list " wchar.h"
-as_fn_append ac_header_list " stdint.h"
-as_fn_append ac_header_list " inttypes.h"
 as_fn_append ac_func_list " iswcntrl"
 as_fn_append ac_func_list " iswblank"
 as_fn_append ac_header_list " langinfo.h"
@@ -3258,33 +3295,50 @@ as_fn_append ac_func_list " mbslen"
 as_fn_append ac_header_list " sys/mman.h"
 as_fn_append ac_func_list " mprotect"
 as_fn_append ac_func_list " mkstemp"
+as_fn_append ac_func_list " tzset"
 as_fn_append ac_func_list " nl_langinfo"
 as_fn_append ac_header_list " sys/param.h"
 as_fn_append ac_func_list " readlink"
-as_fn_append ac_func_list " wcscoll"
+as_fn_append ac_header_list " malloc.h"
 as_fn_append ac_func_list " secure_getenv"
+as_fn_append ac_func_list " getuid"
+as_fn_append ac_func_list " geteuid"
+as_fn_append ac_func_list " getgid"
+as_fn_append ac_func_list " getegid"
+as_fn_append ac_func_list " setenv"
 as_fn_append ac_func_list " sigaction"
 as_fn_append ac_func_list " siginterrupt"
-as_fn_append ac_func_list " tzset"
-as_fn_append ac_header_list " strings.h"
+as_fn_append ac_func_list " __xpg_strerror_r"
 as_fn_append ac_func_list " strndup"
 as_fn_append ac_func_list " strptime"
 as_fn_append ac_func_list " strtoumax"
 as_fn_append ac_header_list " sys/wait.h"
 as_fn_append ac_func_list " localtime_r"
+as_fn_append ac_func_list " timegm"
 as_fn_append ac_func_list " vasnprintf"
 as_fn_append ac_header_list " features.h"
 as_fn_append ac_func_list " snprintf"
 as_fn_append ac_func_list " wcrtomb"
 as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_header_list " arpa/inet.h"
+as_fn_append ac_func_list " ftruncate"
+as_fn_append ac_header_list " netdb.h"
+as_fn_append ac_header_list " netinet/in.h"
 as_fn_append ac_func_list " newlocale"
-as_fn_append ac_func_list " setenv"
+as_fn_append ac_header_list " sys/select.h"
+as_fn_append ac_func_list " pipe"
 as_fn_append ac_func_list " sleep"
-as_fn_append ac_func_list " usleep"
+as_fn_append ac_func_list " catgets"
+as_fn_append ac_header_list " sys/ioctl.h"
+as_fn_append ac_func_list " shutdown"
+as_fn_append ac_header_list " sys/uio.h"
 as_fn_append ac_func_list " wctob"
 as_fn_append ac_func_list " sigprocmask"
 as_fn_append ac_func_list " strcasecoll"
 as_fn_append ac_func_list " stricoll"
+as_fn_append ac_header_list " vfork.h"
+as_fn_append ac_func_list " fork"
+as_fn_append ac_func_list " vfork"
 gt_needs="$gt_needs need-ngettext"
 # Check that the precious variables saved in the cache have kept the same
 # value.
@@ -3357,7 +3411,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 ac_aux_dir=
-for ac_dir in build-aux "$srcdir"/build-aux; do
+for ac_dir in build-aux "$srcdir"/build-aux
+do
   if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -3387,7 +3442,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 
 
-am__api_version='1.13a'
+am__api_version='1.99a'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3406,7 +3461,8 @@ am__api_version='1.13a'
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 printf %s "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
+if test ${ac_cv_path_install+y}
+then :
   printf %s "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3465,7 +3521,7 @@ IFS=$as_save_IFS
 rm -rf conftest.one conftest.two conftest.dir
 
 fi
-  if test "${ac_cv_path_install+set}" = set; then
+  if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
   else
     # As a last resort, use the slow shell script.  Don't cache a
@@ -3563,8 +3619,8 @@ test "$program_suffix" != NONE &&
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
 
-# expand $ac_aux_dir to an absolute path
-am_aux_dir=`cd $ac_aux_dir && pwd`
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 if test x"${MISSING+set}" != xset; then
   case $am_aux_dir in
@@ -3583,7 +3639,7 @@ else
 printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\    *)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -3602,7 +3658,8 @@ if test "$cross_compiling" != no; then
 set dummy ${ac_tool_prefix}strip; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
+if test ${ac_cv_prog_STRIP+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -3646,7 +3703,8 @@ if test -z "$ac_cv_prog_STRIP"; then
 set dummy strip; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -3703,7 +3761,8 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 printf %s "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
+  if test ${ac_cv_path_mkdir+y}
+then :
   printf %s "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3719,8 +3778,8 @@ do
         for ac_exec_ext in '' $ac_executable_extensions; do
           as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
           case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
-            'mkdir (GNU coreutils) '* | \
-            'mkdir (coreutils) '* | \
+            'mkdir ('*'coreutils) '* | \
+            'BusyBox '* | \
             'mkdir (fileutils) '4.1*)
               ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
               break 3;;
@@ -3733,7 +3792,7 @@ IFS=$as_save_IFS
 fi
 
   test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  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
@@ -3752,7 +3811,8 @@ do
 set dummy $ac_prog; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
+if test ${ac_cv_prog_AWK+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -3796,7 +3856,8 @@ done
 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
   printf %s "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -3824,7 +3885,8 @@ printf "%s\n" "no" >&6; }
 fi
 
 # Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
+if test ${enable_silent_rules+y}
+then :
   enableval=$enable_silent_rules;
 fi
 
@@ -3836,7 +3898,8 @@ 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 ${am_cv_make_support_nested_variables+:} false; then :
+if test ${am_cv_make_support_nested_variables+y}
+then :
   printf %s "(cached) " >&6
 else
   if printf "%s\n" 'TRUE=$(BAR$(V))
@@ -3862,6 +3925,7 @@ else
 fi
 AM_BACKSLASH='\'
 
+mkdir_p='$(MKDIR_P)'
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -3884,7 +3948,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='diffutils'
- VERSION='3.3'
+ VERSION='3.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3912,18 +3976,23 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
 
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
 
 
+
 # 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
@@ -3965,8 +4034,10 @@ 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+set}" = set; then :
+if test ${enable_silent_rules+y}
+then :
   enableval=$enable_silent_rules;
 fi
 
@@ -3978,7 +4049,8 @@ 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 ${am_cv_make_support_nested_variables+:} false; then :
+if test ${am_cv_make_support_nested_variables+y}
+then :
   printf %s "(cached) " >&6
 else
   if printf "%s\n" 'TRUE=$(BAR$(V))
@@ -4014,7 +4086,8 @@ do
 set dummy $ac_prog; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
+if test ${ac_cv_prog_AWK+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -4064,7 +4137,8 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if test ${ac_cv_prog_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4108,7 +4182,8 @@ if test -z "$ac_cv_prog_CC"; then
 set dummy gcc; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4165,7 +4240,8 @@ if test -z "$CC"; then
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if test ${ac_cv_prog_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4209,7 +4285,8 @@ if test -z "$CC"; then
 set dummy cc; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if test ${ac_cv_prog_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4272,7 +4349,8 @@ if test -z "$CC"; then
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if test ${ac_cv_prog_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4320,7 +4398,8 @@ do
 set dummy $ac_prog; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4385,7 +4464,7 @@ See \`config.log' for more details" "$LINENO" 5; }
 printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
+for ac_option in --version -v -V -qversion -version; do
   { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -4410,7 +4489,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -4449,7 +4528,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  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'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -4466,7 +4546,7 @@ do
        # certainly right.
        break;;
     *.* )
-       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
        then :; else
           ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
        fi
@@ -4485,7 +4565,8 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
 else
   ac_file=''
 fi
-if test -z "$ac_file"; then :
+if test -z "$ac_file"
+then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
 printf "%s\n" "$as_me: failed program was:" >&5
@@ -4519,7 +4600,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  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
@@ -4550,7 +4632,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
 int
-main ()
+main (void)
 {
 FILE *f = fopen ("conftest.out", "w");
  return ferror (f) || fclose (f) != 0;
@@ -4564,7 +4646,9 @@ ac_clean_files="$ac_clean_files conftest.out"
 # the compiler is broken, or we cross compile.
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
 printf %s "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
+if test "$cross_compiling" = maybe && test "x$build" != "x$host"; then
+  cross_compiling=yes
+elif test "$cross_compiling" != yes; then
   { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -4607,14 +4691,15 @@ rm -f conftest.$ac_ext conftest$ac_cv_exeext 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 ${ac_cv_objext+:} false; then :
+if test ${ac_cv_objext+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
@@ -4632,7 +4717,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
+  test $ac_status = 0; }
+then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -4656,16 +4742,17 @@ fi
 printf "%s\n" "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-printf %s "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifndef __GNUC__
        choke me
@@ -4675,7 +4762,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_compiler_gnu=yes
 else
   ac_compiler_gnu=no
@@ -4691,11 +4779,12 @@ if test $ac_compiler_gnu = yes; then
 else
   GCC=
 fi
-ac_test_CFLAGS=${CFLAGS+set}
+ac_test_CFLAGS=${CFLAGS+y}
 ac_save_CFLAGS=$CFLAGS
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 printf %s "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
+if test ${ac_cv_prog_cc_g+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -4706,14 +4795,15 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
 else
   CFLAGS=""
@@ -4721,14 +4811,15 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
 else
   ac_c_werror_flag=$ac_save_c_werror_flag
@@ -4737,14 +4828,15 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_g=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -4756,7 +4848,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 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; }
-if test "$ac_test_CFLAGS" = set; then
+if test $ac_test_CFLAGS; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
   if test "$GCC" = yes; then
@@ -4773,7 +4865,8 @@ else
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
 printf %s "checking for $CC option to enable C11 features... " >&6; }
-if ${ac_cv_prog_cc_c11+:} false; then :
+if test ${ac_cv_prog_cc_c11+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_prog_cc_c11=no
@@ -4922,7 +5015,7 @@ struct anonymous
 } v1;
 
 int
-main ()
+main (void)
 {
 
   // Check bool.
@@ -4971,7 +5064,8 @@ _ACEOF
 for ac_arg in '' -std=gnu11
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c11=$ac_arg
 fi
 rm -f core conftest.err conftest.$ac_objext
@@ -4996,13 +5090,15 @@ printf "%s\n" "unsupported" >&6; } ;;
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;;
 esac
-if test "x$ac_cv_prog_cc_c11" != xno; then :
+if test "x$ac_cv_prog_cc_c11" != xno
+then :
   ac_prog_cc_stdc=c11
                 ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
 else
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
 printf %s "checking for $CC option to enable C99 features... " >&6; }
-if ${ac_cv_prog_cc_c99+:} false; then :
+if test ${ac_cv_prog_cc_c99+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_prog_cc_c99=no
@@ -5105,7 +5201,7 @@ test_varargs (const char *format, ...)
   return *str && number && fnumber;
 }
 int
-main ()
+main (void)
 {
 
   // Check bool.
@@ -5150,7 +5246,8 @@ _ACEOF
 for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c99=$ac_arg
 fi
 rm -f core conftest.err conftest.$ac_objext
@@ -5175,13 +5272,15 @@ printf "%s\n" "unsupported" >&6; } ;;
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;;
 esac
-if test "x$ac_cv_prog_cc_c99" != xno; then :
+if test "x$ac_cv_prog_cc_c99" != xno
+then :
   ac_prog_cc_stdc=c99
                    ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
 else
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
 printf %s "checking for $CC option to enable C89 features... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
+if test ${ac_cv_prog_cc_c89+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -5231,7 +5330,7 @@ int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, i
 int argc;
 char **argv;
 int
-main ()
+main (void)
 {
 return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
   ;
@@ -5242,7 +5341,8 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
+  if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_prog_cc_c89=$ac_arg
 fi
 rm -f core conftest.err conftest.$ac_objext
@@ -5267,7 +5367,8 @@ printf "%s\n" "unsupported" >&6; } ;;
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
+if test "x$ac_cv_prog_cc_c89" != xno
+then :
   ac_prog_cc_stdc=c89
                       ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
 else
@@ -5285,106 +5386,112 @@ 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
 
+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 whether $CC understands -c and -o together" >&5
 printf %s "checking whether $CC understands -c and -o together... " >&6; }
-set dummy $CC; am__cc=`printf "%s\n" "$2" | \
-                       sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${am_cv_prog_cc_${am__cc}_c_o+:} false; then :
+if test ${am_cv_prog_cc_c_o+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -f conftest2.$ac_objext
-then
-  eval am_cv_prog_cc_${am__cc}_c_o=yes
-else
-  eval am_cv_prog_cc_${am__cc}_c_o=no
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+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; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
 fi
-rm -f core conftest*
+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
 
-fi
-if eval test \"\$am_cv_prog_cc_${am__cc}_c_o\" = yes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
-else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-  # Losing compiler, so wrap it with the 'compile' script.
-  # FIXME: It is wrong to rewrite CC.
-  # But if we don't then we get into trouble of one sort or another.
-  # A longer-term fix would be to have automake use am__CC in this case,
-  # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
-  CC="$am_aux_dir/compile $CC"
-fi
 DEPDIR=.deps
 
 ac_config_commands="$ac_config_commands depfiles"
 
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
 am__doit:
-       @echo this is the am__doit target
+       @echo this is the am__doit target >confinc.out
 .PHONY: am__doit
 END
-# If we don't find an include directive, just comment out the code.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-printf %s "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+  { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+   (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); }
+  case $?:`cat confinc.out 2>/dev/null` in #(
+  '0:this is the am__doit target') :
+    case $s in #(
+  BSD) :
+    am__include='.include' am__quote='"' ;; #(
+  *) :
+    am__include='include' am__quote='' ;;
+esac ;; #(
+  *) :
      ;;
-   esac
-fi
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-printf "%s\n" "$_am_result" >&6; }
-rm -f confinc confmf
+esac
+  if test "$am__include" != "#"; then
+    _am_result="yes ($s style)"
+    break
+  fi
+done
+rm -f confinc.* confmf.*
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+printf "%s\n" "${_am_result}" >&6; }
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
+if test ${enable_dependency_tracking+y}
+then :
   enableval=$enable_dependency_tracking;
 fi
 
@@ -5407,7 +5514,8 @@ depcc="$CC"   am_compiler_list=
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 printf %s "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+if test ${am_cv_CC_dependencies_compiler_type+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -5532,6 +5640,7 @@ fi
 
 
 
+
 HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
 
 if test -n "$ac_tool_prefix"; then
@@ -5539,7 +5648,8 @@ if test -n "$ac_tool_prefix"; then
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
+if test ${ac_cv_prog_RANLIB+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -5583,7 +5693,8 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -5635,6 +5746,165 @@ else
 fi
 
 
+
+  for ac_header in $ac_header_list
+do :
+  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+
+
+printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
+
+printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
+
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+
+
+  ac_fn_c_check_header_compile "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes
+then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+  if test "$MINIX" = yes; then
+
+printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+printf "%s\n" "#define _MINIX 1" >>confdefs.h
+
+
+printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+
+  fi
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#         define __EXTENSIONS__ 1
+          $ac_includes_default
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
+
+  printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+
+  printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
+
+  printf "%s\n" "#define __USE_MINGW_ANSI_STDIO 1" >>confdefs.h
+
+  printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+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
+  ac_cv_should_define__xopen_source=no
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+          #include <wchar.h>
+          mbstate_t x;
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #define _XOPEN_SOURCE 500
+             #include <wchar.h>
+             mbstate_t x;
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_should_define__xopen_source=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ 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; }
+  test $ac_cv_should_define__xopen_source = yes &&
+    printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+
+
+
+
+
+
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -5647,7 +5917,8 @@ if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
+  if test ${ac_cv_prog_CPP+y}
+then :
   printf %s "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -5665,7 +5936,8 @@ do
 #include <limits.h>
                     Syntax error
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
 
 else
   # Broken: fails on valid input.
@@ -5679,7 +5951,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
   # Broken: success on invalid input.
 continue
 else
@@ -5692,7 +5965,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
 done
 # 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 :
+if $ac_preproc_ok
+then :
   break
 fi
 
@@ -5718,7 +5992,8 @@ do
 #include <limits.h>
                     Syntax error
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
 
 else
   # Broken: fails on valid input.
@@ -5732,7 +6007,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+if ac_fn_c_try_cpp "$LINENO"
+then :
   # Broken: success on invalid input.
 continue
 else
@@ -5745,7 +6021,8 @@ rm -f conftest.err conftest.i conftest.$ac_ext
 done
 # 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 :
+if $ac_preproc_ok
+then :
 
 else
   { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
@@ -5763,7 +6040,8 @@ 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 ${ac_cv_path_GREP+:} false; then :
+if test ${ac_cv_path_GREP+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5778,7 +6056,8 @@ do
     */) ;;
     *) as_dir=$as_dir/ ;;
   esac
-    for ac_prog in grep ggrep; 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
@@ -5830,7 +6109,8 @@ printf "%s\n" "$ac_cv_path_GREP" >&6; }
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 printf %s "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
+if test ${ac_cv_path_EGREP+y}
+then :
   printf %s "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5848,7 +6128,8 @@ do
     */) ;;
     *) as_dir=$as_dir/ ;;
   esac
-    for ac_prog in egrep; 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
@@ -5901,9 +6182,11 @@ printf "%s\n" "$ac_cv_path_EGREP" >&6; }
 
 
 
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
 printf %s "checking for Minix Amsterdam compiler... " >&6; }
-if ${gl_cv_c_amsterdam_compiler+:} false; then :
+if test ${gl_cv_c_amsterdam_compiler+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -5916,7 +6199,8 @@ Amsterdam
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Amsterdam" >/dev/null 2>&1; then :
+  $EGREP "Amsterdam" >/dev/null 2>&1
+then :
   gl_cv_c_amsterdam_compiler=yes
 else
   gl_cv_c_amsterdam_compiler=no
@@ -5927,19 +6211,207 @@ rm -rf conftest*
 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; }
-  if test -z "$AR"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
+
+      if test $gl_cv_c_amsterdam_compiler = yes; then
+    if test -z "$AR"; then
       AR='cc -c.a'
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='-o'
+    fi
+    if test -z "$ARFLAGS"; then
+      ARFLAGS='-o'
+    fi
+  else
+                                        if test -n "$ac_tool_prefix"; then
+  for ac_prog in ar lib "link -lib"
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+    test -n "$AR" && break
+  done
+fi
+if test -z "$AR"; then
+  ac_ct_AR=$AR
+  for ac_prog in ar lib "link -lib"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="$ac_prog"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_AR" && break
+done
+
+  if test "x$ac_ct_AR" = x; then
+    AR="false"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+fi
+
+: ${AR=ar}
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5
+printf %s "checking the archiver ($AR) interface... " >&6; }
+if test ${am_cv_ar_interface+y}
+then :
+  printf %s "(cached) " >&6
+else
+  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
+
+   am_cv_ar_interface=ar
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int some_variable = 0;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5'
+      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+      if test "$ac_status" -eq 0; then
+        am_cv_ar_interface=ar
+      else
+        am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5'
+        { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5
+  (eval $am_ar_try) 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+        if test "$ac_status" -eq 0; then
+          am_cv_ar_interface=lib
+        else
+          am_cv_ar_interface=unknown
+        fi
       fi
-    else
-                  if test -n "$ac_tool_prefix"; then
+      rm -f conftest.lib libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   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
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5
+printf "%s\n" "$am_cv_ar_interface" >&6; }
+
+case $am_cv_ar_interface in
+ar)
+  ;;
+lib)
+  # Microsoft lib, so override with the ar-lib wrapper script.
+  # FIXME: It is wrong to rewrite AR.
+  # But if we don't then we get into trouble of one sort or another.
+  # A longer-term fix would be to have automake use am__AR in this case,
+  # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
+  # similar.
+  AR="$am_aux_dir/ar-lib $AR"
+  ;;
+unknown)
+  as_fn_error $? "could not determine $AR interface" "$LINENO" 5
+  ;;
+esac
+
+  fi
+
+        if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
+if test ${ac_cv_prog_AR+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -5983,7 +6455,8 @@ if test -z "$ac_cv_prog_AR"; then
 set dummy ar; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -6034,17 +6507,12 @@ else
   AR="$ac_cv_prog_AR"
 fi
 
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='cru'
-      fi
-    fi
-  else
-    if test -z "$ARFLAGS"; then
-      ARFLAGS='cru'
-    fi
+  if test -z "$ARFLAGS"; then
+    ARFLAGS='cr'
   fi
 
 
+
   if test -z "$RANLIB"; then
     if test $gl_cv_c_amsterdam_compiler = yes; then
       RANLIB=':'
@@ -6054,7 +6522,8 @@ fi
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
+if test ${ac_cv_prog_RANLIB+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -6098,7 +6567,8 @@ if test -z "$ac_cv_prog_RANLIB"; then
 set dummy ranlib; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
   fi
 
 
-
-# For better backward-compatibility.  Users are advised to stop
-# relying on this cache variable and C preprocessor symbol ASAP.
-eval ac_cv_prog_cc_${am__cc}_c_o=\$am_cv_prog_cc_${am__cc}_c_o
-if eval test \"\$ac_cv_prog_cc_${am__cc}_c_o\" != yes; then
-
-printf "%s\n" "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
-
-fi
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-printf %s "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  printf %s "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -rf conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=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: $ac_cv_header_stdc" >&5
-printf "%s\n" "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
-
-
-  if test "$MINIX" = yes; then
-
-printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-printf "%s\n" "#define _MINIX 1" >>confdefs.h
-
-
-printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
-
-  fi
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  printf %s "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-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; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
-
-  printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
-
-  printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
-
-  printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
-printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
-if ${ac_cv_should_define__xopen_source+:} false; then :
-  printf %s "(cached) " >&6
-else
-  ac_cv_should_define__xopen_source=no
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-          #include <wchar.h>
-          mbstate_t x;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-             #define _XOPEN_SOURCE 500
-             #include <wchar.h>
-             mbstate_t x;
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_should_define__xopen_source=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ 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; }
-  test $ac_cv_should_define__xopen_source = yes &&
-    printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
-
-
-
-
-
-
-
-
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
   as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 printf %s "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
+if test ${ac_cv_build+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_build_alias=$build_alias
@@ -6452,7 +6664,8 @@ case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 printf %s "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
+if test ${ac_cv_host+y}
+then :
   printf %s "(cached) " >&6
 else
   if test "x$host_alias" = x; then
@@ -6513,7 +6726,8 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
   esac
 
 # Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
+if test ${enable_largefile+y}
+then :
   enableval=$enable_largefile;
 fi
 
@@ -6521,7 +6735,8 @@ if test "$enable_largefile" != 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 ${ac_cv_sys_largefile_CC+:} false; then :
+if test ${ac_cv_sys_largefile_CC+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
@@ -6542,19 +6757,21 @@ else
                        && LARGE_OFF_T % 2147483647 == 1)
                       ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-         if ac_fn_c_try_compile "$LINENO"; then :
+         if ac_fn_c_try_compile "$LINENO"
+then :
   break
 fi
 rm -f core conftest.err conftest.$ac_objext
          CC="$CC -n32"
-         if ac_fn_c_try_compile "$LINENO"; then :
+         if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_largefile_CC=' -n32'; break
 fi
 rm -f core conftest.err conftest.$ac_objext
@@ -6572,7 +6789,8 @@ printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
 
   { 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 ${ac_cv_sys_file_offset_bits+:} false; then :
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
   printf %s "(cached) " >&6
 else
   while :; do
@@ -6588,14 +6806,15 @@ else
                        && LARGE_OFF_T % 2147483647 == 1)
                       ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+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.$ac_ext
@@ -6612,14 +6831,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
                        && LARGE_OFF_T % 2147483647 == 1)
                       ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_sys_file_offset_bits=64; break
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -6641,7 +6861,8 @@ rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
     { 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 ${ac_cv_sys_large_files+:} false; then :
+if test ${ac_cv_sys_large_files+y}
+then :
   printf %s "(cached) " >&6
 else
   while :; do
@@ -6657,14 +6878,15 @@ else
                        && LARGE_OFF_T % 2147483647 == 1)
                       ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+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.$ac_ext
@@ -6681,14 +6903,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
                        && LARGE_OFF_T % 2147483647 == 1)
                       ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+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.$ac_ext
@@ -6717,7 +6940,14 @@ fi
 
 
 
+  # Pre-early section.
+
+
 
+
+  # Code from module absolute-header:
+  # Code from module accept:
+  # Code from module accept-tests:
   # Code from module alloca:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
@@ -6727,8 +6957,13 @@ fi
   # Code from module areadlink-tests:
   # Code from module argmatch:
   # Code from module argmatch-tests:
+  # Code from module arpa_inet:
+  # Code from module arpa_inet-tests:
+  # Code from module assure:
   # Code from module binary-io:
   # Code from module binary-io-tests:
+  # Code from module bind:
+  # Code from module bind-tests:
   # Code from module bitrotate:
   # Code from module bitrotate-tests:
   # Code from module btowc:
@@ -6746,6 +6981,10 @@ fi
   # Code from module close-tests:
   # Code from module config-h:
   # Code from module configmake:
+  # Code from module connect:
+  # Code from module connect-tests:
+  # Code from module ctype:
+  # Code from module ctype-tests:
   # Code from module diffseq:
   # Code from module dirname:
   # Code from module dirname-lgpl:
@@ -6753,6 +6992,7 @@ fi
   # Code from module do-release-commit-and-tag:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dtotimespec:
   # Code from module dup2:
   # Code from module dup2-tests:
   # Code from module environ:
@@ -6764,7 +7004,6 @@ fi
   # Code from module exclude-tests:
   # Code from module exitfail:
   # Code from module extensions:
-
   # Code from module extern-inline:
   # Code from module fcntl:
   # Code from module fcntl-h:
@@ -6776,9 +7015,11 @@ fi
   # Code from module fdopen-tests:
   # Code from module fgetc-tests:
   # Code from module file-type:
+  # Code from module filename:
   # Code from module filenamecat:
   # Code from module filenamecat-lgpl:
   # Code from module filenamecat-tests:
+  # Code from module flexmember:
   # Code from module float:
   # Code from module float-tests:
   # Code from module fnmatch:
@@ -6795,6 +7036,8 @@ fi
   # Code from module freopen-tests:
   # Code from module fstat:
   # Code from module fstat-tests:
+  # Code from module ftruncate:
+  # Code from module ftruncate-tests:
   # Code from module fwrite-tests:
   # Code from module gendocs:
   # Code from module getcwd-lgpl:
@@ -6830,6 +7073,8 @@ fi
   # Code from module ignore-value:
   # Code from module ignore-value-tests:
   # Code from module include_next:
+  # Code from module inet_pton:
+  # Code from module inet_pton-tests:
   # Code from module inline:
   # Code from module intprops:
   # Code from module intprops-tests:
@@ -6838,6 +7083,10 @@ fi
   # Code from module inttypes:
   # Code from module inttypes-incomplete:
   # Code from module inttypes-tests:
+  # Code from module ioctl:
+  # Code from module ioctl-tests:
+  # Code from module isblank:
+  # Code from module isblank-tests:
   # Code from module iswblank:
   # Code from module iswblank-tests:
   # Code from module langinfo:
@@ -6845,6 +7094,8 @@ fi
   # Code from module largefile:
 
   # Code from module libsigsegv:
+  # Code from module listen:
+  # Code from module listen-tests:
   # Code from module localcharset:
   # Code from module locale:
   # Code from module locale-tests:
@@ -6853,8 +7104,6 @@ fi
   # Code from module lstat:
   # Code from module lstat-tests:
   # Code from module maintainer-makefile:
-  # Code from module malloc-gnu:
-  # Code from module malloc-gnu-tests:
   # Code from module malloc-posix:
   # Code from module malloca:
   # Code from module malloca-tests:
@@ -6878,9 +7127,14 @@ fi
   # Code from module memchr-tests:
   # Code from module mkstemp:
   # Code from module mktime:
+  # Code from module mktime-internal:
   # Code from module msvc-inval:
   # Code from module msvc-nothrow:
   # Code from module multiarch:
+  # Code from module nanosleep:
+  # Code from module nanosleep-tests:
+  # Code from module netinet_in:
+  # Code from module netinet_in-tests:
   # Code from module nl_langinfo:
   # Code from module nl_langinfo-tests:
   # Code from module nocrash:
@@ -6888,6 +7142,10 @@ fi
   # Code from module open-tests:
   # Code from module pathmax:
   # Code from module pathmax-tests:
+  # 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 putenv:
@@ -6897,6 +7155,8 @@ fi
   # Code from module quotearg-simple-tests:
   # Code from module raise:
   # Code from module raise-tests:
+  # Code from module rawmemchr:
+  # Code from module rawmemchr-tests:
   # Code from module readlink:
   # Code from module readlink-tests:
   # Code from module readme-release:
@@ -6904,10 +7164,14 @@ fi
   # Code from module regex-tests:
   # Code from module same-inode:
   # Code from module secure_getenv:
+  # Code from module select:
+  # Code from module select-tests:
   # Code from module setenv:
   # Code from module setenv-tests:
   # Code from module setlocale:
   # Code from module setlocale-tests:
+  # Code from module setsockopt:
+  # Code from module setsockopt-tests:
   # Code from module sh-quote:
   # Code from module sh-quote-tests:
   # Code from module sigaction:
@@ -6927,12 +7191,19 @@ fi
   # Code from module snippet/warn-on-use:
   # Code from module snprintf:
   # Code from module snprintf-tests:
+  # Code from module socket:
+  # Code from module socketlib:
+  # Code from module sockets:
+  # Code from module sockets-tests:
+  # Code from module socklen:
   # Code from module ssize_t:
   # Code from module stat:
   # Code from module stat-macros:
   # Code from module stat-tests:
   # Code from module stat-time:
   # Code from module stat-time-tests:
+  # Code from module stdalign:
+  # Code from module stdalign-tests:
   # Code from module stdarg:
 
 
@@ -6952,6 +7223,8 @@ fi
   # Code from module strerror:
   # Code from module strerror-override:
   # Code from module strerror-tests:
+  # Code from module strerror_r-posix:
+  # Code from module strerror_r-posix-tests:
   # Code from module strftime:
   # Code from module strftime-tests:
   # Code from module striconv:
@@ -6971,12 +7244,20 @@ fi
   # Code from module strtoumax-tests:
   # Code from module symlink:
   # Code from module symlink-tests:
+  # Code from module sys_ioctl:
+  # Code from module sys_ioctl-tests:
+  # Code from module sys_select:
+  # Code from module sys_select-tests:
+  # Code from module sys_socket:
+  # Code from module sys_socket-tests:
   # Code from module sys_stat:
   # Code from module sys_stat-tests:
   # Code from module sys_time:
   # Code from module sys_time-tests:
   # Code from module sys_types:
   # Code from module sys_types-tests:
+  # Code from module sys_uio:
+  # Code from module sys_uio-tests:
   # Code from module sys_wait:
   # Code from module sys_wait-tests:
   # Code from module system-quote:
@@ -6986,7 +7267,12 @@ fi
   # Code from module time:
   # Code from module time-tests:
   # Code from module time_r:
+  # Code from module time_rz:
+  # Code from module timegm:
   # Code from module timespec:
+  # Code from module timespec-add:
+  # Code from module timespec-sub:
+  # Code from module timespec-tests:
   # Code from module trim:
   # Code from module unistd:
   # Code from module unistd-tests:
@@ -7005,8 +7291,6 @@ fi
   # Code from module update-copyright:
   # Code from module update-copyright-tests:
   # Code from module useless-if-before-free:
-  # Code from module usleep:
-  # Code from module usleep-tests:
   # Code from module vararrays:
   # Code from module vasnprintf:
   # Code from module vasnprintf-tests:
@@ -7056,7 +7340,8 @@ fi
   export LIBC_FATAL_STDERR_
 
 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
+if test "x$ac_cv_type_size_t" = xyes
+then :
 
 else
 
@@ -7070,14 +7355,15 @@ fi
 # for constant arguments.  Useless!
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
 printf %s "checking for working alloca.h... " >&6; }
-if ${ac_cv_working_alloca_h+:} false; then :
+if test ${ac_cv_working_alloca_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <alloca.h>
 int
-main ()
+main (void)
 {
 char *p = (char *) alloca (2 * sizeof (int));
                          if (p) return 0;
@@ -7085,7 +7371,8 @@ char *p = (char *) alloca (2 * sizeof (int));
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_working_alloca_h=yes
 else
   ac_cv_working_alloca_h=no
@@ -7103,7 +7390,8 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
 printf %s "checking for alloca... " >&6; }
-if ${ac_cv_func_alloca_works+:} false; then :
+if test ${ac_cv_func_alloca_works+y}
+then :
   printf %s "(cached) " >&6
 else
   if test $ac_cv_working_alloca_h = yes; then
@@ -7111,9 +7399,7 @@ else
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
+#include <stdlib.h>
 #include <stddef.h>
 #ifndef alloca
 # ifdef __GNUC__
@@ -7130,7 +7416,7 @@ void *alloca (size_t);
 #endif
 
 int
-main ()
+main (void)
 {
 char *p = (char *) alloca (1);
                                    if (p) return 0;
@@ -7138,7 +7424,8 @@ char *p = (char *) alloca (1);
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_func_alloca_works=yes
 else
   ac_cv_func_alloca_works=no
@@ -7171,7 +7458,8 @@ printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
 printf %s "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if ${ac_cv_os_cray+:} false; then :
+if test ${ac_cv_os_cray+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7184,7 +7472,8 @@ wenotbecray
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then :
+  $EGREP "webecray" >/dev/null 2>&1
+then :
   ac_cv_os_cray=yes
 else
   ac_cv_os_cray=no
@@ -7198,7 +7487,8 @@ if test $ac_cv_os_cray = yes; then
   for ac_func in _getb67 GETB67 getb67; do
     as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -7212,10 +7502,12 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
 printf %s "checking stack direction for C alloca... " >&6; }
-if ${ac_cv_c_stack_direction+:} false; then :
+if test ${ac_cv_c_stack_direction+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_c_stack_direction=0
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7238,7 +7530,8 @@ main (int argc, char **argv)
   return find_stack_direction (0, argc + !argv + 20) < 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_c_stack_direction=1
 else
   ac_cv_c_stack_direction=-1
@@ -7353,7 +7646,8 @@ fi
 
             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
 printf %s "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
-if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
+if test ${gl_cv_header_wchar_h_correct_inline+y}
+then :
   printf %s "(cached) " >&6
 else
   gl_cv_header_wchar_h_correct_inline=yes
@@ -7431,7 +7725,8 @@ Configuration aborted." "$LINENO" 5
 do :
   as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -7444,21 +7739,23 @@ done
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
 printf %s "checking for nl_langinfo and CODESET... " >&6; }
-if ${am_cv_langinfo_codeset+:} false; then :
+if test ${am_cv_langinfo_codeset+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
 int
-main ()
+main (void)
 {
 char* cs = nl_langinfo(CODESET); return !cs;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   am_cv_langinfo_codeset=yes
 else
   am_cv_langinfo_codeset=no
@@ -7480,7 +7777,8 @@ printf "%s\n" "#define HAVE_LANGINFO_CODESET 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -7615,23 +7913,6 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
 
 
-  for ac_header in $ac_header_list
-do :
-  as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
 
 
 
@@ -7656,10 +7937,12 @@ _ACEOF
 
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working C stack overflow detection" >&5
 printf %s "checking for working C stack overflow detection... " >&6; }
-if ${ac_cv_sys_stack_overflow_works+:} false; then :
+if test ${ac_cv_sys_stack_overflow_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_sys_stack_overflow_works=cross-compiling
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7750,7 +8033,8 @@ else
             }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_sys_stack_overflow_works=yes
 else
   ac_cv_sys_stack_overflow_works=no
@@ -7770,11 +8054,13 @@ printf "%s\n" "#define HAVE_STACK_OVERFLOW_HANDLING 1" >>confdefs.h
 
                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for correct stack_t interpretation" >&5
 printf %s "checking for correct stack_t interpretation... " >&6; }
-if ${gl_cv_sigaltstack_low_base+:} false; then :
+if test ${gl_cv_sigaltstack_low_base+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
   gl_cv_sigaltstack_low_base=cross-compiling
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7827,7 +8113,8 @@ int main ()
   exit (4);
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_sigaltstack_low_base=yes
 else
   gl_cv_sigaltstack_low_base=no
@@ -7847,10 +8134,12 @@ printf "%s\n" "#define SIGALTSTACK_SS_REVERSED 1" >>confdefs.h
 
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for precise C stack overflow detection" >&5
 printf %s "checking for precise C stack overflow detection... " >&6; }
-if ${ac_cv_sys_xsi_stack_overflow_heuristic+:} false; then :
+if test ${ac_cv_sys_xsi_stack_overflow_heuristic+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_sys_xsi_stack_overflow_heuristic=cross-compiling
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -7973,7 +8262,8 @@ else
             }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_sys_xsi_stack_overflow_heuristic=yes
 else
   ac_cv_sys_xsi_stack_overflow_heuristic=no
@@ -8011,7 +8301,8 @@ printf "%s\n" "#define HAVE_XSI_STACK_OVERFLOW_HEURISTIC 1" >>confdefs.h
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
+if test ${with_gnu_ld+y}
+then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -8069,7 +8360,8 @@ 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 ${acl_cv_path_LD+:} false; then :
+if test ${acl_cv_path_LD+y}
+then :
   printf %s "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -8109,7 +8401,8 @@ fi
 test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { 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 ${acl_cv_prog_gnu_ld+:} false; then :
+if test ${acl_cv_prog_gnu_ld+y}
+then :
   printf %s "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -8131,7 +8424,8 @@ with_gnu_ld=$acl_cv_prog_gnu_ld
 
                                                 { 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 ${acl_cv_rpath+:} false; then :
+if test ${acl_cv_rpath+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -8154,7 +8448,8 @@ printf "%s\n" "$acl_cv_rpath" >&6; }
   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+set}" = set; then :
+if test ${enable_rpath+y}
+then :
   enableval=$enable_rpath; :
 else
   enable_rpath=yes
@@ -8169,7 +8464,8 @@ fi
     solaris*)
                                     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
 printf %s "checking for 64-bit host... " >&6; }
-if ${gl_cv_solaris_64bit+:} false; then :
+if test ${gl_cv_solaris_64bit+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -8181,7 +8477,8 @@ sixtyfour bits
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+  $EGREP "sixtyfour bits" >/dev/null 2>&1
+then :
   gl_cv_solaris_64bit=yes
 else
   gl_cv_solaris_64bit=no
@@ -8253,7 +8550,8 @@ printf "%s\n" "$gl_cv_solaris_64bit" >&6; }
 
 
 # Check whether --with-libsigsegv-prefix was given.
-if test "${with_libsigsegv_prefix+set}" = set; then :
+if test ${with_libsigsegv_prefix+y}
+then :
   withval=$with_libsigsegv_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -8720,7 +9018,8 @@ fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsigsegv" >&5
 printf %s "checking for libsigsegv... " >&6; }
-if ${ac_cv_libsigsegv+:} false; then :
+if test ${ac_cv_libsigsegv+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -8733,14 +9032,15 @@ else
 /* end confdefs.h.  */
 #include <sigsegv.h>
 int
-main ()
+main (void)
 {
 sigsegv_deinstall_handler();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_libsigsegv=yes
 else
   ac_cv_libsigsegv='no, consider installing GNU libsigsegv'
@@ -8779,7 +9079,98 @@ printf "%s\n" "$LIBSIGSEGV" >&6; }
 
 
 
+# The Clang compiler raises a warning for an undeclared identifier that matches
+# a compiler builtin function.  All extant Clang versions are affected, as of
+# Clang 3.6.0.  Test a builtin known to every version.  This problem affects the
+# C and Objective C languages, but Clang does report an error under C++ and
+# Objective C++.
+#
+# Passing -fno-builtin to the compiler would suppress this problem.  That
+# strategy would have the advantage of being insensitive to stray warnings, but
+# it would make tests less realistic.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how $CC reports undeclared, standard C functions" >&5
+printf %s "checking how $CC reports undeclared, standard C functions... " >&6; }
+if test ${ac_cv_c_decl_report+y}
+then :
+  printf %s "(cached) " >&6
+else
+  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 :
+  if test -s conftest.err
+then :
+      # For AC_CHECK_DECL to react to warnings, the compiler must be silent on
+    # valid AC_CHECK_DECL input.  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)
+{
+#ifdef __cplusplus
+  (void) ac_decl ((int) 0, (char *) 0);
+  (void) ac_decl;
+#else
+  (void) ac_decl;
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  if test -s conftest.err
+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 detect from compiler exit status or warnings
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  ac_cv_c_decl_report=warning
+fi
+else
+  { { 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 compile a simple declaration test
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  { { 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 $? "compiler does not report undeclared identifiers
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+else
+  ac_cv_c_decl_report=error
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_decl_report" >&5
+printf "%s\n" "$ac_cv_c_decl_report" >&6; }
+
+case $ac_cv_c_decl_report in
+  warning) ac_c_decl_warn_flag=yes ;;
+  *) ac_c_decl_warn_flag= ;;
+esac
 
 
 
@@ -8882,6 +9273,7 @@ printf "%s\n" "$LIBSIGSEGV" >&6; }
   REPLACE_FTRUNCATE=0;
   REPLACE_GETCWD=0;
   REPLACE_GETDOMAINNAME=0;
+  REPLACE_GETDTABLESIZE=0;
   REPLACE_GETLOGIN_R=0;
   REPLACE_GETGROUPS=0;
   REPLACE_GETPAGESIZE=0;
@@ -8894,9 +9286,11 @@ printf "%s\n" "$LIBSIGSEGV" >&6; }
   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_TTYNAME_R=0;
   REPLACE_UNLINK=0;
   REPLACE_UNLINKAT=0;
@@ -8921,55 +9315,24 @@ printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
 
 
+  GNULIB_IOCTL=0;
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=0;
+  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
 
-
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
-printf %s "checking whether // is distinct from /... " >&6; }
-if ${gl_cv_double_slash_root+:} false; then :
-  printf %s "(cached) " >&6
-else
-   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
-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
+  REPLACE_IOCTL=0;
 
 
 
 
+  GNULIB_ISBLANK=0;
+    HAVE_ISBLANK=1;
 
 
 
   { 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 ${gl_cv_have_include_next+:} false; then :
+if test ${gl_cv_have_include_next+y}
+then :
   printf %s "(cached) " >&6
 else
   rm -rf conftestd1a conftestd1b conftestd2
@@ -9005,7 +9368,8 @@ EOF
 /* end confdefs.h.  */
 #include <conftest.h>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_have_include_next=yes
 else
   CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
@@ -9013,7 +9377,8 @@ else
 /* end confdefs.h.  */
 #include <conftest.h>
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_have_include_next=buggy
 else
   gl_cv_have_include_next=no
@@ -9049,7 +9414,8 @@ printf "%s\n" "$gl_cv_have_include_next" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
 printf %s "checking whether system header files limit the line length... " >&6; }
-if ${gl_cv_pragma_columns+:} false; then :
+if test ${gl_cv_pragma_columns+y}
+then :
   printf %s "(cached) " >&6
 else
        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9061,7 +9427,8 @@ choke me
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "choke me" >/dev/null 2>&1; then :
+  $EGREP "choke me" >/dev/null 2>&1
+then :
   gl_cv_pragma_columns=yes
 else
   gl_cv_pragma_columns=no
@@ -9081,9 +9448,107 @@ printf "%s\n" "$gl_cv_pragma_columns" >&6; }
 
 
 
+  { 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
+   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
+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 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
+
+    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>
+
+           extern struct { int foo; } 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
+  gt_cv_var_environ_declaration=yes
+fi
+rm -f core conftest.err conftest.$ac_objext 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
+
+  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 ${gl_cv_header_errno_h_complete+:} false; then :
+if test ${gl_cv_header_errno_h_complete+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -9145,7 +9610,8 @@ booboo
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "booboo" >/dev/null 2>&1; then :
+  $EGREP "booboo" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_complete=no
 else
   gl_cv_header_errno_h_complete=yes
@@ -9172,40 +9638,45 @@ printf "%s\n" "$gl_cv_header_errno_h_complete" >&6; }
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
 printf %s "checking absolute name of <errno.h>... " >&6; }
-if ${gl_cv_next_errno_h+:} false; then :
+if test ${gl_cv_next_errno_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <errno.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'errno.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'errno.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_errno_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_errno_h
+           gl_cv_next_errno_h='"'$gl_header'"'
 
 
 fi
@@ -9241,7 +9712,8 @@ fi
   if test -n "$ERRNO_H"; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
 printf %s "checking for EMULTIHOP value... " >&6; }
-if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
+if test ${gl_cv_header_errno_h_EMULTIHOP+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -9255,7 +9727,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_EMULTIHOP=yes
 else
   gl_cv_header_errno_h_EMULTIHOP=no
@@ -9274,7 +9747,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_EMULTIHOP=hidden
 fi
 rm -rf conftest*
@@ -9286,7 +9760,8 @@ rm -rf conftest*
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
-"; then :
+"
+then :
 
 fi
 
@@ -9312,7 +9787,8 @@ printf "%s\n" "$gl_cv_header_errno_h_EMULTIHOP" >&6; }
   if test -n "$ERRNO_H"; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
 printf %s "checking for ENOLINK value... " >&6; }
-if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
+if test ${gl_cv_header_errno_h_ENOLINK+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -9326,7 +9802,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_ENOLINK=yes
 else
   gl_cv_header_errno_h_ENOLINK=no
@@ -9345,7 +9822,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_ENOLINK=hidden
 fi
 rm -rf conftest*
@@ -9357,7 +9835,8 @@ rm -rf conftest*
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
-"; then :
+"
+then :
 
 fi
 
@@ -9383,7 +9862,8 @@ printf "%s\n" "$gl_cv_header_errno_h_ENOLINK" >&6; }
   if test -n "$ERRNO_H"; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
 printf %s "checking for EOVERFLOW value... " >&6; }
-if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
+if test ${gl_cv_header_errno_h_EOVERFLOW+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -9397,7 +9877,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_EOVERFLOW=yes
 else
   gl_cv_header_errno_h_EOVERFLOW=no
@@ -9416,7 +9897,8 @@ yes
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_header_errno_h_EOVERFLOW=hidden
 fi
 rm -rf conftest*
@@ -9428,7 +9910,8 @@ rm -rf conftest*
 /* The following two lines are a workaround against an autoconf-2.52 bug.  */
 #include <stdio.h>
 #include <stdlib.h>
-"; then :
+"
+then :
 
 fi
 
@@ -9452,7 +9935,8 @@ printf "%s\n" "$gl_cv_header_errno_h_EOVERFLOW" >&6; }
 
 
 ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
+if test "x$ac_cv_have_decl_strerror_r" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -9462,20 +9946,14 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_STRERROR_R $ac_have_decl
 _ACEOF
 
-for ac_func in strerror_r
-do :
-  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
-if test "x$ac_cv_func_strerror_r" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRERROR_R 1
-_ACEOF
 
-fi
-done
+
+
 
 { 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 ${ac_cv_func_strerror_r_char_p+:} false; then :
+if test ${ac_cv_func_strerror_r_char_p+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -9485,7 +9963,7 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 
          char buf[100];
@@ -9497,7 +9975,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_func_strerror_r_char_p=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -9508,7 +9987,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
       # former has a strerror_r that returns char*, while the latter
       # has a strerror_r that returns `int'.
       # This test should segfault on the DEC system.
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9516,7 +9996,7 @@ else
 $ac_includes_default
        extern char *strerror_r ();
 int
-main ()
+main (void)
 {
 char buf[100];
          char x = *strerror_r (0, buf, sizeof buf);
@@ -9525,7 +10005,8 @@ char buf[100];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_strerror_r_char_p=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
 printf %s "checking for working fcntl.h... " >&6; }
-if ${gl_cv_header_working_fcntl_h+:} false; then :
+if test ${gl_cv_header_working_fcntl_h+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   gl_cv_header_working_fcntl_h=cross-compiling
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9602,7 +10085,7 @@ else
             };
 
 int
-main ()
+main (void)
 {
 
             int result = !constants;
@@ -9672,7 +10155,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_header_working_fcntl_h=yes
 else
   case $? in #(
@@ -9711,7 +10195,8 @@ _ACEOF
 
 
 ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
+if test "x$ac_cv_type_pid_t" = xyes
+then :
 
 else
 
@@ -9722,7 +10207,8 @@ _ACEOF
 fi
 
 ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
-if test "x$ac_cv_type_mode_t" = xyes; then :
+if test "x$ac_cv_type_mode_t" = xyes
+then :
 
 else
 
@@ -9741,7 +10227,8 @@ fi
 
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
 printf %s "checking for mbstate_t... " >&6; }
-if ${ac_cv_type_mbstate_t+:} false; then :
+if test ${ac_cv_type_mbstate_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9756,14 +10243,15 @@ $ac_includes_default
 #include <time.h>
 #include <wchar.h>
 int
-main ()
+main (void)
 {
 mbstate_t x; return sizeof x;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_type_mbstate_t=yes
 else
   ac_cv_type_mbstate_t=no
@@ -9936,7 +10424,8 @@ printf "%s\n" "#define mbstate_t int" >>confdefs.h
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
 printf %s "checking whether stat file-mode macros are broken... " >&6; }
-if ${ac_cv_header_stat_broken+:} false; then :
+if test ${ac_cv_header_stat_broken+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9961,7 +10450,8 @@ extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
 #endif
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_header_stat_broken=no
 else
   ac_cv_header_stat_broken=yes
 
 
 
-
-
   case "$host_os" in
     mingw*)
                         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5
 printf %s "checking for 64-bit off_t... " >&6; }
-if ${gl_cv_type_off_t_64+:} false; then :
+if test ${gl_cv_type_off_t_64+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9993,14 +10482,15 @@ else
                 int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1];
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_type_off_t_64=yes
 else
   gl_cv_type_off_t_64=no
@@ -10042,43 +10532,48 @@ printf "%s\n" "$gl_cv_type_off_t_64" >&6; }
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
 printf %s "checking absolute name of <sys/stat.h>... " >&6; }
-if ${gl_cv_next_sys_stat_h+:} false; then :
+if test ${gl_cv_next_sys_stat_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_sys_stat_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/stat.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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/stat.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_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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/stat.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_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'"'
           else
                gl_cv_next_sys_stat_h='<'sys/stat.h'>'
              fi
@@ -10118,7 +10613,8 @@ printf "%s\n" "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h
       ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
      #include <sys/stat.h>
 "
-if test "x$ac_cv_type_nlink_t" = xyes; then :
+if test "x$ac_cv_type_nlink_t" = xyes
+then :
 
 else
 
@@ -10132,7 +10628,8 @@ fi
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10140,7 +10637,7 @@ else
 #include <sys/stat.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -10148,7 +10645,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -10158,7 +10656,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
 
 
+ac_fn_c_check_decl "$LINENO" "getdtablesize" "ac_cv_have_decl_getdtablesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdtablesize" = xyes
+then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETDTABLESIZE $ac_have_decl
+_ACEOF
+
 
 
 
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
 printf %s "checking absolute name of <getopt.h>... " >&6; }
-if ${gl_cv_next_getopt_h+:} false; then :
+if test ${gl_cv_next_getopt_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_getopt_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <getopt.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'getopt.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_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'getopt.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_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'"'
           else
                gl_cv_next_getopt_h='<'getopt.h'>'
              fi
@@ -10262,8 +10778,9 @@ printf "%s\n" "$gl_cv_next_getopt_h" >&6; }
     if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
     for ac_header in getopt.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
-if test "x$ac_cv_header_getopt_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
+if test "x$ac_cv_header_getopt_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GETOPT_H 1
 _ACEOF
@@ -10271,7 +10788,6 @@ _ACEOF
 else
   gl_replace_getopt=yes
 fi
-
 done
 
   fi
@@ -10280,7 +10796,8 @@ done
     for ac_func in getopt_long_only
 do :
   ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
-if test "x$ac_cv_func_getopt_long_only" = xyes; then :
+if test "x$ac_cv_func_getopt_long_only" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GETOPT_LONG_ONLY 1
 _ACEOF
@@ -10295,12 +10812,14 @@ done
           if test -z "$gl_replace_getopt"; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
 printf %s "checking whether getopt is POSIX compatible... " >&6; }
-if ${gl_cv_func_getopt_posix+:} false; then :
+if test ${gl_cv_func_getopt_posix+y}
+then :
   printf %s "(cached) " >&6
 else
 
                                                 if test $cross_compiling = no; then
-                              if test "$cross_compiling" = yes; 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;}
 as_fn_error $? "cannot run test program while cross compiling
@@ -10335,7 +10854,8 @@ main ()
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getopt_posix=maybe
 else
   gl_cv_func_getopt_posix=no
@@ -10345,7 +10865,8 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 fi
 
           if test $gl_cv_func_getopt_posix = maybe; then
-                                    if test "$cross_compiling" = yes; 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;}
 as_fn_error $? "cannot run test program while cross compiling
@@ -10394,7 +10915,8 @@ main ()
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getopt_posix=maybe
 else
   gl_cv_func_getopt_posix=no
@@ -10405,7 +10927,8 @@ fi
 
           fi
           if test $gl_cv_func_getopt_posix = maybe; then
-                        if test "$cross_compiling" = yes; 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;}
 as_fn_error $? "cannot run test program while cross compiling
@@ -10436,7 +10959,8 @@ main ()
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getopt_posix=yes
 else
   gl_cv_func_getopt_posix=no
@@ -10464,7 +10988,8 @@ printf "%s\n" "$gl_cv_func_getopt_posix" >&6; }
   if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
 printf %s "checking for working GNU getopt function... " >&6; }
-if ${gl_cv_func_getopt_gnu+:} false; then :
+if test ${gl_cv_func_getopt_gnu+y}
+then :
   printf %s "(cached) " >&6
 else
   # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the
@@ -10481,7 +11006,8 @@ else
        esac
        POSIXLY_CORRECT=1
        export POSIXLY_CORRECT
-       if test "$cross_compiling" = yes; then :
+       if test "$cross_compiling" = yes
+then :
            gl_cv_func_getopt_gnu="guessing no"
 
 else
@@ -10585,11 +11111,12 @@ nocrash_init (void)
 #else
 /* Avoid a crash on POSIX systems.  */
 #include <signal.h>
+#include <unistd.h>
 /* A POSIX signal handler.  */
 static void
 exception_handler (int sig)
 {
-  exit (1);
+  _exit (1);
 }
 static void
 nocrash_init (void)
@@ -10605,7 +11132,7 @@ nocrash_init (void)
 
 
 int
-main ()
+main (void)
 {
 
              int result = 0;
@@ -10683,7 +11210,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getopt_gnu=yes
 else
   gl_cv_func_getopt_gnu=no
@@ -10706,10 +11234,12 @@ printf "%s\n" "$gl_cv_func_getopt_gnu" >&6; }
     else
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5
 printf %s "checking for working GNU getopt_long function... " >&6; }
-if ${gl_cv_func_getopt_long_gnu+:} false; then :
+if test ${gl_cv_func_getopt_long_gnu+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  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";;
@@ -10723,7 +11253,7 @@ else
                 #include <string.h>
 
 int
-main ()
+main (void)
 {
 static const struct option long_options[] =
                   {
@@ -10749,7 +11279,8 @@ static const struct option long_options[] =
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getopt_long_gnu=yes
 else
   gl_cv_func_getopt_long_gnu=no
@@ -10790,7 +11321,8 @@ printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
   fi
 
 ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getenv" = xyes; then :
+if test "x$ac_cv_have_decl_getenv" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -10807,7 +11339,8 @@ _ACEOF
 
 { 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 ${ac_cv_c_restrict+:} false; then :
+if test ${ac_cv_c_restrict+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_c_restrict=no
@@ -10815,22 +11348,25 @@ else
    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];
-       }
+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 ()
+main (void)
 {
 int s[1];
-       int * $ac_kw t = s;
-       t[0] = 0;
-       return foo(t)
+          int *$ac_kw t = s;
+          t[0] = 0;
+          return foo (t) + bar (t);
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_restrict=$ac_kw
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -10856,6 +11392,7 @@ _ACEOF
     HAVE_GETTIMEOFDAY=1;
   HAVE_STRUCT_TIMEVAL=1;
   HAVE_SYS_TIME_H=1;
+  HAVE_TIMEZONE_T=0;
   REPLACE_GETTIMEOFDAY=0;
   REPLACE_STRUCT_TIMEVAL=0;
 
@@ -10879,43 +11416,48 @@ _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
 printf %s "checking absolute name of <sys/time.h>... " >&6; }
-if ${gl_cv_next_sys_time_h+:} false; then :
+if test ${gl_cv_next_sys_time_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_sys_time_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/time.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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/time.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_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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/time.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_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'"'
           else
                gl_cv_next_sys_time_h='<'sys/time.h'>'
              fi
@@ -10951,14 +11493,14 @@ printf "%s\n" "$gl_cv_next_sys_time_h" >&6; }
   if test $ac_cv_header_sys_socket_h != yes; then
                     for ac_header in winsock2.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes; 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 :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
-
 done
 
   fi
@@ -10973,7 +11515,8 @@ done
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
 printf %s "checking for struct timeval... " >&6; }
-if ${gl_cv_sys_struct_timeval+:} false; then :
+if test ${gl_cv_sys_struct_timeval+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -10987,14 +11530,15 @@ else
             #endif
 
 int
-main ()
+main (void)
 {
 static struct timeval x; x.tv_sec = x.tv_usec;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_timeval=yes
 else
   gl_cv_sys_struct_timeval=no
@@ -11009,7 +11553,8 @@ printf "%s\n" "$gl_cv_sys_struct_timeval" >&6; }
   else
                             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wide-enough struct timeval.tv_sec member" >&5
 printf %s "checking for wide-enough struct timeval.tv_sec member... " >&6; }
-if ${gl_cv_sys_struct_timeval_tv_sec+:} false; then :
+if test ${gl_cv_sys_struct_timeval_tv_sec+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11023,7 +11568,7 @@ else
               #endif
 
 int
-main ()
+main (void)
 {
 static struct timeval x;
               typedef int verify_tv_sec_type[
@@ -11034,7 +11579,8 @@ static struct timeval x;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_timeval_tv_sec=yes
 else
   gl_cv_sys_struct_timeval_tv_sec=no
@@ -11054,7 +11600,8 @@ printf "%s\n" "$gl_cv_sys_struct_timeval_tv_sec" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -11066,7 +11613,7 @@ else
 #include <time.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -11074,7 +11621,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -11084,7 +11632,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -11123,7 +11672,8 @@ fi
 
 
 # Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then :
+if test ${with_libiconv_prefix+y}
+then :
   withval=$with_libiconv_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -11611,7 +12161,8 @@ fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 printf %s "checking for iconv... " >&6; }
-if ${am_cv_func_iconv+:} false; then :
+if test ${am_cv_func_iconv+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -11624,7 +12175,7 @@ else
 #include <iconv.h>
 
 int
-main ()
+main (void)
 {
 iconv_t cd = iconv_open("","");
            iconv(cd,NULL,NULL,NULL,NULL);
@@ -11633,7 +12184,8 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   am_cv_func_iconv=yes
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -11648,7 +12200,7 @@ rm -f core conftest.err conftest.$ac_objext \
 #include <iconv.h>
 
 int
-main ()
+main (void)
 {
 iconv_t cd = iconv_open("","");
              iconv(cd,NULL,NULL,NULL,NULL);
@@ -11657,7 +12209,8 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
 fi
@@ -11672,7 +12225,8 @@ printf "%s\n" "$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 printf %s "checking for working iconv... " >&6; }
-if ${am_cv_func_iconv_works+:} false; then :
+if test ${am_cv_func_iconv_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -11680,36 +12234,43 @@ else
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      if test "$cross_compiling" = yes; then :
-
-         case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
 #include <string.h>
-int main ()
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+
+int
+main (void)
 {
-  int result = 0;
+int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -11722,14 +12283,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -11741,14 +12302,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304";
+        static ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = 1;
         char *outptr = buf;
         size_t outbytesleft = 1;
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -11761,14 +12322,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -11788,17 +12349,21 @@ int main ()
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
     result |= 16;
   return result;
+
+  ;
+  return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   am_cv_func_iconv_works=yes
-else
-  am_cv_func_iconv_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
 
 fi
@@ -11832,7 +12397,8 @@ printf "%s\n" "$LIBICONV" >&6; }
   if test "$am_cv_func_iconv" = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
 printf %s "checking for iconv declaration... " >&6; }
-    if ${am_cv_proto_iconv+:} false; then :
+    if test ${am_cv_proto_iconv+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -11852,14 +12418,15 @@ size_t iconv();
 #endif
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   am_cv_proto_iconv_arg1=""
 else
   am_cv_proto_iconv_arg1="const"
@@ -11889,7 +12456,8 @@ _ACEOF
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 printf %s "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
+if test ${ac_cv_c_inline+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_c_inline=no
@@ -11903,7 +12471,8 @@ $ac_kw foo_t foo () {return 0; }
 #endif
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_inline=$ac_kw
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -11930,7 +12499,8 @@ _ACEOF
 esac
 
 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 :
+if test "x$ac_cv_type_off_t" = xyes
+then :
 
 else
 
@@ -11943,7 +12513,8 @@ fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
 printf %s "checking for unsigned long long int... " >&6; }
-if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+if test ${ac_cv_type_unsigned_long_long_int+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_type_unsigned_long_long_int=yes
@@ -11966,7 +12537,7 @@ else
                      ? 1 : -1)];
       int i = 63;
 int
-main ()
+main (void)
 {
 /* Test availability of runtime routines for shift and division.  */
       long long int llmax = 9223372036854775807ll;
@@ -11980,7 +12551,8 @@ main ()
 }
 
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
 
 else
   ac_cv_type_unsigned_long_long_int=no
@@ -12001,14 +12573,16 @@ printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
 printf %s "checking for long long int... " >&6; }
-if ${ac_cv_type_long_long_int+:} false; then :
+if test ${ac_cv_type_long_long_int+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_type_long_long_int=yes
       if test "x${ac_cv_prog_cc_c99-no}" = xno; then
         ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
         if test $ac_cv_type_long_long_int = yes; then
-                                        if test "$cross_compiling" = yes; then :
+                                        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -12020,7 +12594,7 @@ else
                  # define LLONG_MAX (HALF - 1 + HALF)
                  #endif
 int
-main ()
+main (void)
 {
 long long int n = 1;
                  int i;
@@ -12037,7 +12611,8 @@ long long int n = 1;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
 
 else
   ac_cv_type_long_long_int=no
@@ -12060,8 +12635,6 @@ printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
 
 
 
-
-
     gl_cv_c_multiarch=no
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -12071,7 +12644,8 @@ printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
         typedef int dummy;
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
                arch=
      prev=
@@ -12156,43 +12730,48 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
 printf %s "checking absolute name of <stdint.h>... " >&6; }
-if ${gl_cv_next_stdint_h+:} false; then :
+if test ${gl_cv_next_stdint_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_stdint_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdint.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'stdint.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdint.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdint_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdint_h
+           gl_cv_next_stdint_h='"'$gl_header'"'
           else
                gl_cv_next_stdint_h='<'stdint.h'>'
              fi
@@ -12226,7 +12805,8 @@ printf "%s\n" "$gl_cv_next_stdint_h" >&6; }
     if test $ac_cv_header_stdint_h = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
 printf %s "checking whether stdint.h conforms to C99... " >&6; }
-if ${gl_cv_header_working_stdint_h+:} false; then :
+if test ${gl_cv_header_working_stdint_h+y}
+then :
   printf %s "(cached) " >&6
 else
   gl_cv_header_working_stdint_h=no
@@ -12235,6 +12815,8 @@ else
 
 
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
 #include <stdint.h>
 /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
 #if !(defined WCHAR_MIN && defined WCHAR_MAX)
@@ -12386,15 +12968,17 @@ struct s {
 };
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-                                                    if test "$cross_compiling" = yes; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
+                                                    if test "$cross_compiling" = yes
+then :
                  gl_cv_header_working_stdint_h=yes
 
 else
@@ -12403,6 +12987,8 @@ else
 
 
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
 #include <stdint.h>
 
 
@@ -12451,7 +13037,7 @@ static const char *macro_values[] =
   };
 
 int
-main ()
+main (void)
 {
 
   const char **mv;
@@ -12473,7 +13059,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_header_working_stdint_h=yes
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
 printf "%s\n" "$gl_cv_header_working_stdint_h" >&6; }
   fi
   if test "$gl_cv_header_working_stdint_h" = yes; then
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stdint.h predates C++11" >&5
+printf %s "checking whether stdint.h predates C++11... " >&6; }
+if test ${gl_cv_header_stdint_predates_cxx11_h+y}
+then :
+  printf %s "(cached) " >&6
+else
+  gl_cv_header_stdint_predates_cxx11_h=yes
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+
+
+  /* BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be
+     included before <wchar.h>.  */
+  #include <stddef.h>
+  #include <signal.h>
+  #if HAVE_WCHAR_H
+  # include <stdio.h>
+  # include <time.h>
+  # include <wchar.h>
+  #endif
+
+
+intmax_t im = INTMAX_MAX;
+int32_t i32 = INT32_C (0x7fffffff);
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_stdint_predates_cxx11_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_predates_cxx11_h" >&5
+printf "%s\n" "$gl_cv_header_stdint_predates_cxx11_h" >&6; }
+
+    if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
+
+printf "%s\n" "#define __STDC_CONSTANT_MACROS 1" >>confdefs.h
+
+
+printf "%s\n" "#define __STDC_LIMIT_MACROS 1" >>confdefs.h
+
+    fi
     STDINT_H=
   else
             for ac_header in sys/inttypes.h sys/bitypes.h
 do :
   as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
-
 done
 
     if test $ac_cv_header_sys_inttypes_h = yes; then
@@ -12525,7 +13166,8 @@ done
   for gltype in ptrdiff_t size_t ; do
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
 printf %s "checking for bit size of $gltype... " >&6; }
-if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+if eval test \${gl_cv_bitsizeof_${gltype}+y}
+then :
   printf %s "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
@@ -12539,7 +13181,8 @@ else
   # include <wchar.h>
   #endif
 
-#include <limits.h>"; then :
+#include <limits.h>"
+then :
 
 else
   result=unknown
@@ -12570,7 +13213,8 @@ _ACEOF
   for gltype in sig_atomic_t wchar_t wint_t ; do
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
 printf %s "checking for bit size of $gltype... " >&6; }
-if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+if eval test \${gl_cv_bitsizeof_${gltype}+y}
+then :
   printf %s "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result"        "
@@ -12584,7 +13228,8 @@ else
   # include <wchar.h>
   #endif
 
-#include <limits.h>"; then :
+#include <limits.h>"
+then :
 
 else
   result=unknown
@@ -12614,7 +13259,8 @@ _ACEOF
   for gltype in sig_atomic_t wchar_t wint_t ; do
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
 printf %s "checking whether $gltype is signed... " >&6; }
-if eval \${gl_cv_type_${gltype}_signed+:} false; then :
+if eval test \${gl_cv_type_${gltype}_signed+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -12632,14 +13278,15 @@ else
 
             int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   result=yes
 else
   result=no
@@ -12673,7 +13320,8 @@ _ACEOF
   for gltype in ptrdiff_t size_t ; do
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
 printf %s "checking for $gltype integer literal suffix... " >&6; }
-if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+if eval test \${gl_cv_type_${gltype}_suffix+y}
+then :
   printf %s "(cached) " >&6
 else
   eval gl_cv_type_${gltype}_suffix=no
@@ -12710,14 +13358,15 @@ else
               extern $gltype foo;
               extern $gltype1 foo;
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -12745,7 +13394,8 @@ _ACEOF
   for gltype in sig_atomic_t wchar_t wint_t ; do
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
 printf %s "checking for $gltype integer literal suffix... " >&6; }
-if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+if eval test \${gl_cv_type_${gltype}_suffix+y}
+then :
   printf %s "(cached) " >&6
 else
   eval gl_cv_type_${gltype}_suffix=no
@@ -12782,14 +13432,15 @@ else
               extern $gltype foo;
               extern $gltype1 foo;
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval gl_cv_type_${gltype}_suffix=\$glsuf
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -12829,8 +13480,6 @@ fi
 
 
 
-
-
   GNULIB_IMAXABS=0;
   GNULIB_IMAXDIV=0;
   GNULIB_STRTOIMAX=0;
@@ -12840,6 +13489,7 @@ fi
   HAVE_DECL_STRTOIMAX=1;
   HAVE_DECL_STRTOUMAX=1;
   REPLACE_STRTOIMAX=0;
+  REPLACE_STRTOUMAX=0;
   INT32_MAX_LT_INTMAX_MAX=1;
   INT64_MAX_EQ_LONG_MAX='defined _LP64';
   PRI_MACROS_BROKEN=0;
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
 printf %s "checking absolute name of <inttypes.h>... " >&6; }
-if ${gl_cv_next_inttypes_h+:} false; then :
+if test ${gl_cv_next_inttypes_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_inttypes_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <inttypes.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'inttypes.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'inttypes.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_inttypes_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_inttypes_h
+           gl_cv_next_inttypes_h='"'$gl_header'"'
           else
                gl_cv_next_inttypes_h='<'inttypes.h'>'
              fi
@@ -12934,7 +13589,8 @@ printf "%s\n" "$gl_cv_next_inttypes_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -12942,7 +13598,7 @@ else
 #include <inttypes.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -12950,7 +13606,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -12960,7 +13617,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
   for ac_header in inttypes.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_INTTYPES_H 1
 _ACEOF
 
 fi
-
 done
 
   if test $ac_cv_header_inttypes_h = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
 printf %s "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if ${gt_cv_inttypes_pri_broken+:} false; then :
+if test ${gt_cv_inttypes_pri_broken+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -12999,14 +13658,15 @@ char *p = PRId32;
 #endif
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gt_cv_inttypes_pri_broken=no
 else
   gt_cv_inttypes_pri_broken=yes
@@ -13045,7 +13705,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
 printf %s "checking for wint_t... " >&6; }
-if ${gt_cv_c_wint_t+:} false; then :
+if test ${gt_cv_c_wint_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13061,14 +13722,15 @@ else
 #include <wchar.h>
             wint_t foo = (wchar_t)'\0';
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gt_cv_c_wint_t=yes
 else
   gt_cv_c_wint_t=no
@@ -13117,43 +13779,48 @@ printf "%s\n" "#define HAVE_WINT_T 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
 printf %s "checking absolute name of <wctype.h>... " >&6; }
-if ${gl_cv_next_wctype_h+:} false; then :
+if test ${gl_cv_next_wctype_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_wctype_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wctype.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'wctype.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wctype.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_wctype_h
+           gl_cv_next_wctype_h='"'$gl_header'"'
           else
                gl_cv_next_wctype_h='<'wctype.h'>'
              fi
@@ -13181,11 +13848,13 @@ printf "%s\n" "$gl_cv_next_wctype_h" >&6; }
     if test $ac_cv_func_iswcntrl = yes; then
                   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
 printf %s "checking whether iswcntrl works... " >&6; }
-if ${gl_cv_func_iswcntrl_works+:} false; then :
+if test ${gl_cv_func_iswcntrl_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
-          if test "$cross_compiling" = yes; then :
+          if test "$cross_compiling" = yes
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
@@ -13193,14 +13862,15 @@ else
                           Linux libc5 i18n is broken.
                           #endif
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_iswcntrl_works="guessing yes"
 else
   gl_cv_func_iswcntrl_works="guessing no"
@@ -13223,7 +13893,8 @@ else
                int main () { return iswprint ('x') == 0; }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_iswcntrl_works=yes
 else
   gl_cv_func_iswcntrl_works=no
@@ -13259,7 +13930,8 @@ printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; }
     for ac_func in towlower
 do :
   ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
-if test "x$ac_cv_func_towlower" = xyes; then :
+if test "x$ac_cv_func_towlower" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_TOWLOWER 1
 _ACEOF
@@ -13283,7 +13955,8 @@ done
           #endif
 
 "
-if test "x$ac_cv_have_decl_towlower" = xyes; then :
+if test "x$ac_cv_have_decl_towlower" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -13308,7 +13981,8 @@ _ACEOF
 
           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
 printf %s "checking for wctype_t... " >&6; }
-if ${gl_cv_type_wctype_t+:} false; then :
+if test ${gl_cv_type_wctype_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13327,14 +14001,15 @@ else
             wctype_t a;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_type_wctype_t=yes
 else
   gl_cv_type_wctype_t=no
@@ -13350,7 +14025,8 @@ printf "%s\n" "$gl_cv_type_wctype_t" >&6; }
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
 printf %s "checking for wctrans_t... " >&6; }
-if ${gl_cv_type_wctrans_t+:} false; then :
+if test ${gl_cv_type_wctrans_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13367,14 +14043,15 @@ else
             wctrans_t a;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_type_wctrans_t=yes
 else
   gl_cv_type_wctrans_t=no
@@ -13393,7 +14070,8 @@ printf "%s\n" "$gl_cv_type_wctrans_t" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13412,7 +14090,7 @@ else
 #include <wctype.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -13420,7 +14098,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -13430,7 +14109,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -13450,7 +14130,8 @@ fi
 
 
 ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -13463,7 +14144,8 @@ _ACEOF
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
 printf %s "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
-if ${ac_cv_gnu_library_2_1+:} false; then :
+if test ${ac_cv_gnu_library_2_1+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13481,7 +14163,8 @@ else
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky" >/dev/null 2>&1; then :
+  $EGREP "Lucky" >/dev/null 2>&1
+then :
   ac_cv_gnu_library_2_1=yes
 else
   ac_cv_gnu_library_2_1=no
@@ -13509,12 +14192,14 @@ printf "%s\n" "$ac_cv_gnu_library_2_1" >&6; }
 
 
     REPLACE_NULL=0;
+  HAVE_MAX_ALIGN_T=1;
   HAVE_WCHAR_T=1;
 
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
 printf %s "checking for wchar_t... " >&6; }
-if ${gt_cv_c_wchar_t+:} false; then :
+if test ${gt_cv_c_wchar_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13522,14 +14207,15 @@ else
 #include <stddef.h>
             wchar_t foo = (wchar_t)'\0';
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gt_cv_c_wchar_t=yes
 else
   gt_cv_c_wchar_t=no
@@ -13548,13 +14234,24 @@ printf "%s\n" "#define HAVE_WCHAR_T 1" >>confdefs.h
 
 
   STDDEF_H=
+  ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
+
+"
+if test "x$ac_cv_type_max_align_t" = xyes
+then :
+
+else
+  HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
+fi
+
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
     STDDEF_H=stddef.h
   fi
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
 printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if ${gl_cv_decl_null_works+:} false; then :
+if test ${gl_cv_decl_null_works+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -13563,14 +14260,15 @@ else
       int test[2 * (sizeof NULL == sizeof (void *)) -1];
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_decl_null_works=yes
 else
   gl_cv_decl_null_works=no
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
 printf %s "checking absolute name of <stddef.h>... " >&6; }
-if ${gl_cv_next_stddef_h+:} false; then :
+if test ${gl_cv_next_stddef_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'stddef.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stddef.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stddef_h
+           gl_cv_next_stddef_h='"'$gl_header'"'
 
 
 fi
@@ -13669,38 +14372,44 @@ printf "%s\n" "$gl_cv_next_stddef_h" >&6; }
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
 printf %s "checking whether lstat correctly handles trailing slash... " >&6; }
-if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then :
+if test ${gl_cv_func_lstat_dereferences_slashed_symlink+y}
+then :
   printf %s "(cached) " >&6
 else
   rm -f conftest.sym conftest.file
      echo >conftest.file
-     if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
-       if test "$cross_compiling" = yes; then :
+     if test "$cross_compiling" = yes
+then :
   case "$host_os" in
-                    # Guess yes on glibc systems.
-            *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-                    # If we don't know, assume the worst.
-            *)      gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
-          esac
+          *-gnu*)
+            # Guess yes on glibc systems.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+          *)
+            # If we don't know, assume the worst.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
+        esac
 
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 struct stat sbuf;
-              /* Linux will dereference the symlink and fail, as required by
-                 POSIX.  That is better in the sense that it means we will not
-                 have to compile and use the lstat wrapper.  */
-              return lstat ("conftest.sym/", &sbuf) == 0;
+            if (symlink ("conftest.file", "conftest.sym") != 0)
+              return 1;
+            /* Linux will dereference the symlink and fail, as required by
+               POSIX.  That is better in the sense that it means we will not
+               have to compile and use the lstat wrapper.  */
+            return lstat ("conftest.sym/", &sbuf) == 0;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_lstat_dereferences_slashed_symlink=yes
 else
   gl_cv_func_lstat_dereferences_slashed_symlink=no
@@ -13709,11 +14418,6 @@ rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-     else
-       # If the 'ln -s' command failed, then we probably don't even
-       # have an lstat function.
-       gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
-     fi
      rm -f conftest.sym conftest.file
 
 fi
@@ -13729,6 +14433,81 @@ _ACEOF
       ;;
   esac
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+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
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_prog in sed gsed
+   do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
+      as_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
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_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" '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+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
+
 
   GNULIB__EXIT=0;
   GNULIB_ATOLL=0;
@@ -13748,6 +14527,7 @@ _ACEOF
   GNULIB_PTSNAME=0;
   GNULIB_PTSNAME_R=0;
   GNULIB_PUTENV=0;
+  GNULIB_QSORT_R=0;
   GNULIB_RANDOM=0;
   GNULIB_RANDOM_R=0;
   GNULIB_REALLOC_POSIX=0;
@@ -13799,6 +14579,7 @@ _ACEOF
   REPLACE_PTSNAME=0;
   REPLACE_PTSNAME_R=0;
   REPLACE_PUTENV=0;
+  REPLACE_QSORT_R=0;
   REPLACE_RANDOM_R=0;
   REPLACE_REALLOC=0;
   REPLACE_REALPATH=0;
@@ -13810,7 +14591,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
 printf %s "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
-if ${gl_cv_func_malloc_posix+:} false; then :
+if test ${gl_cv_func_malloc_posix+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -13818,7 +14600,7 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
              choke me
@@ -13828,7 +14610,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_malloc_posix=yes
 else
   gl_cv_func_malloc_posix=no
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
 printf "%s\n" "$gl_cv_func_malloc_posix" >&6; }
 
+# Autoupdate added the following line to ensure that your configure
+# script's behavior did not change.  It is probably safe to remove.
+
 
 
       for ac_header in stdlib.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDLIB_H 1
 _ACEOF
 
 fi
-
 done
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
 printf %s "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+if test ${ac_cv_func_malloc_0_nonnull+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
           # Guess yes on platforms where we know the result.
           *-gnu* | freebsd* | netbsd* | openbsd* \
@@ -13878,15 +14666,19 @@ else
             #endif
 
 int
-main ()
+main (void)
 {
-return ! malloc (0);
+char *p = malloc (0);
+            int result = !p;
+            free (p);
+            return result;
   ;
   return 0;
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_malloc_0_nonnull=yes
 else
   ac_cv_func_malloc_0_nonnull=no
@@ -13899,7 +14691,8 @@ fi
 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; }
-  if test $ac_cv_func_malloc_0_nonnull = yes; then :
+  if test $ac_cv_func_malloc_0_nonnull = yes
+then :
   gl_cv_func_malloc_0_nonnull=1
 else
   gl_cv_func_malloc_0_nonnull=0
@@ -13920,7 +14713,8 @@ _ACEOF
 
   { 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 ${gt_cv_locale_ja+:} false; then :
+if test ${gt_cv_locale_ja+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -14059,7 +14853,8 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -14191,7 +14986,8 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -14404,7 +15200,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
   # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
   # irrelevant for anonymous mappings.
   ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = xyes; then :
+if test "x$ac_cv_func_mmap" = xyes
+then :
   gl_have_mmap=yes
 else
   gl_have_mmap=no
@@ -14426,7 +15223,8 @@ 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; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
   gl_have_mmap_anonymous=yes
 fi
 rm -rf conftest*
@@ -14442,7 +15240,8 @@ rm -rf conftest*
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
 
 printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
@@ -14475,10 +15274,12 @@ printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
     # Assume that memchr works on platforms that lack mprotect.
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether memchr works" >&5
 printf %s "checking whether memchr works... " >&6; }
-if ${gl_cv_func_memchr_works+:} false; then :
+if test ${gl_cv_func_memchr_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
          gl_cv_func_memchr_works="guessing no"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14496,7 +15297,7 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
 
   int result = 0;
@@ -14536,7 +15337,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_memchr_works=yes
 else
   gl_cv_func_memchr_works=no
@@ -14561,6 +15363,7 @@ printf "%s\n" "$gl_cv_func_memchr_works" >&6; }
   GNULIB_STRPTIME=0;
   GNULIB_TIMEGM=0;
   GNULIB_TIME_R=0;
+  GNULIB_TIME_RZ=0;
     HAVE_DECL_LOCALTIME_R=1;
   HAVE_NANOSLEEP=1;
   HAVE_STRPTIME=1;
@@ -14570,8 +15373,48 @@ printf "%s\n" "$gl_cv_func_memchr_works" >&6; }
   REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
   REPLACE_TIMEGM=GNULIB_PORTCHECK;
 
+      : ${GNULIB_GETTIMEOFDAY=0};
+        REPLACE_GMTIME=0;
+  REPLACE_LOCALTIME=0;
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether time_t is signed" >&5
+printf %s "checking whether time_t is signed... " >&6; }
+if test ${gl_cv_time_t_is_signed+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+                          char time_t_signed[(time_t) -1 < 0 ? 1 : -1];
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_time_t_is_signed=yes
+else
+  gl_cv_time_t_is_signed=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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; }
+  if test $gl_cv_time_t_is_signed = yes; then
+
+printf "%s\n" "#define TIME_T_IS_SIGNED 1" >>confdefs.h
+
+  fi
+
 ac_fn_c_check_decl "$LINENO" "alarm" "ac_cv_have_decl_alarm" "$ac_includes_default"
-if test "x$ac_cv_have_decl_alarm" = xyes; then :
+if test "x$ac_cv_have_decl_alarm" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -14585,9 +15428,15 @@ _ACEOF
 
 
 
+
+
+
+
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
 printf %s "checking for promoted mode_t type... " >&6; }
-if ${gl_cv_promoted_mode_t+:} false; then :
+if test ${gl_cv_promoted_mode_t+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -14595,14 +15444,15 @@ else
 /* end confdefs.h.  */
 #include <sys/types.h>
 int
-main ()
+main (void)
 {
 typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_promoted_mode_t='int'
 else
   gl_cv_promoted_mode_t='mode_t'
@@ -14647,7 +15497,8 @@ _ACEOF
       #include <sys/types.h>
 
 "
-if test "x$ac_cv_type_sigset_t" = xyes; then :
+if test "x$ac_cv_type_sigset_t" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_SIGSET_T 1
 
 
 
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = xyes
+then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+  if test $ac_cv_have_decl_setenv = no; then
+    HAVE_DECL_SETENV=0
+  fi
+
+
+
+
+
+  for ac_header in search.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SEARCH_H 1
+_ACEOF
+
+fi
+done
+
+  for ac_func in tsearch
+do :
+  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_TSEARCH 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
 { 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 ${ac_cv_type_uid_t+:} false; then :
+if test ${ac_cv_type_uid_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14681,7 +15592,8 @@ else
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "uid_t" >/dev/null 2>&1; then :
+  $EGREP "uid_t" >/dev/null 2>&1
+then :
   ac_cv_type_uid_t=yes
 else
   ac_cv_type_uid_t=no
 
 { 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 ${ac_cv_header_stdbool_h+:} false; then :
+if test ${ac_cv_header_stdbool_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
              #include <stdbool.h>
-             #ifndef bool
-              "error: bool is not defined"
-             #endif
-             #ifndef false
-              "error: false is not defined"
-             #endif
-             #if false
-              "error: false is not 0"
-             #endif
-             #ifndef true
-              "error: true is not defined"
-             #endif
-             #if true != 1
-              "error: true is not 1"
+
+             #if __cplusplus < 201103
+              #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
@@ -14756,7 +15673,7 @@ else
              _Bool *pq = &q;
 
 int
-main ()
+main (void)
 {
 
              bool e = &s;
@@ -14770,7 +15687,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_header_stdbool_h=yes
 else
   ac_cv_header_stdbool_h=no
@@ -14780,7 +15698,8 @@ 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 :
+if test "x$ac_cv_type__Bool" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE__BOOL 1
      REPLACE_STRERROR_0=0
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
 printf %s "checking whether strerror(0) succeeds... " >&6; }
-if ${gl_cv_func_strerror_0_works+:} false; then :
+if test ${gl_cv_func_strerror_0_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                  # Guess yes on glibc systems.
          *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;;
@@ -14818,7 +15739,7 @@ else
            #include <errno.h>
 
 int
-main ()
+main (void)
 {
 int result = 0;
            char *str;
@@ -14833,7 +15754,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_strerror_0_works=yes
 else
   gl_cv_func_strerror_0_works=no
@@ -14856,9 +15778,185 @@ printf "%s\n" "#define REPLACE_STRERROR_0 1" >>confdefs.h
       ;;
   esac
 
+
+
+
+
+
+
+
+  if test $ac_cv_func_strerror_r = yes; then
+    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+                int strerror_r (int, char *, size_t);
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_func_strerror_r_posix_signature=yes
+else
+  gl_cv_func_strerror_r_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+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; }
+      if test $gl_cv_func_strerror_r_posix_signature = yes; then
+                                                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r works" >&5
+printf %s "checking whether strerror_r works... " >&6; }
+if test ${gl_cv_func_strerror_r_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+
+              case "$host_os" in
+                       # Guess no on AIX.
+                aix*)  gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess no on HP-UX.
+                hpux*) gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess no on BSD variants.
+                *bsd*)  gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess yes otherwise.
+                *)     gl_cv_func_strerror_r_works="guessing yes";;
+              esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <errno.h>
+                  #include <string.h>
+
+int
+main (void)
+{
+int result = 0;
+                  char buf[79];
+                  if (strerror_r (EACCES, buf, 0) < 0)
+                    result |= 1;
+                  errno = 0;
+                  if (strerror_r (EACCES, buf, sizeof buf) != 0)
+                    result |= 2;
+                  strcpy (buf, "Unknown");
+                  if (strerror_r (0, buf, sizeof buf) != 0)
+                    result |= 4;
+                  if (errno)
+                    result |= 8;
+                  if (strstr (buf, "nknown") || strstr (buf, "ndefined"))
+                    result |= 0x10;
+                  errno = 0;
+                  *buf = 0;
+                  if (strerror_r (-3, buf, sizeof buf) < 0)
+                    result |= 0x20;
+                  if (errno)
+                    result |= 0x40;
+                  if (!*buf)
+                    result |= 0x80;
+                  return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_strerror_r_works=yes
+else
+  gl_cv_func_strerror_r_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_strerror_r_works" >&5
+printf "%s\n" "$gl_cv_func_strerror_r_works" >&6; }
+      else
+
+                        if test $ac_cv_func___xpg_strerror_r = yes; then
+          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __xpg_strerror_r works" >&5
+printf %s "checking whether __xpg_strerror_r works... " >&6; }
+if test ${gl_cv_func_strerror_r_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+                                  gl_cv_func_strerror_r_works="guessing no"
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <errno.h>
+                    #include <string.h>
+                    extern
+                    #ifdef __cplusplus
+                    "C"
+                    #endif
+                    int __xpg_strerror_r(int, char *, size_t);
+
+int
+main (void)
+{
+int result = 0;
+                    char buf[256] = "^";
+                    char copy[256];
+                    char *str = strerror (-1);
+                    strcpy (copy, str);
+                    if (__xpg_strerror_r (-2, buf, 1) == 0)
+                      result |= 1;
+                    if (*buf)
+                      result |= 2;
+                    __xpg_strerror_r (-2, buf, 256);
+                    if (strcmp (str, copy))
+                      result |= 4;
+                    return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_strerror_r_works=yes
+else
+  gl_cv_func_strerror_r_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_strerror_r_works" >&5
+printf "%s\n" "$gl_cv_func_strerror_r_works" >&6; }
+        fi
+      fi
+    fi
+  fi
+
 { 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 ${ac_cv_struct_tm+:} false; then :
+if test ${ac_cv_struct_tm+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14867,7 +15965,7 @@ else
 #include <time.h>
 
 int
-main ()
+main (void)
 {
 struct tm tm;
                                     int *p = &tm.tm_sec;
@@ -14876,7 +15974,8 @@ struct tm tm;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_struct_tm=time.h
 else
   ac_cv_struct_tm=sys/time.h
@@ -14895,7 +15994,8 @@ ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_
 #include <$ac_cv_struct_tm>
 
 "
-if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TM_TM_ZONE 1
@@ -14911,7 +16011,8 @@ printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h
 else
   ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
 "
-if test "x$ac_cv_have_decl_tzname" = xyes; then :
+if test "x$ac_cv_have_decl_tzname" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -14923,7 +16024,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
 printf %s "checking for tzname... " >&6; }
-if ${ac_cv_var_tzname+:} false; then :
+if test ${ac_cv_var_tzname+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -14934,14 +16036,15 @@ extern char *tzname[];
 #endif
 
 int
-main ()
+main (void)
 {
 return tzname[0][0];
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_var_tzname=yes
 else
   ac_cv_var_tzname=no
@@ -14961,7 +16064,8 @@ fi
 
  ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
 "
-if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes
+then :
 
 printf "%s\n" "#define HAVE_TM_GMTOFF 1" >>confdefs.h
 
 
 
 
-
-
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_string_h='<'string.h'>'
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
 printf %s "checking absolute name of <string.h>... " >&6; }
-if ${gl_cv_next_string_h+:} false; then :
+if test ${gl_cv_next_string_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'string.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'string.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_string_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_string_h
+           gl_cv_next_string_h='"'$gl_header'"'
 
 
 fi
@@ -15046,7 +16153,8 @@ printf "%s\n" "$gl_cv_next_string_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15054,7 +16162,7 @@ else
 #include <string.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -15062,7 +16170,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -15072,7 +16181,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
 
 
 
-
-
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_strings_h='<'strings.h'>'
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <strings.h>" >&5
 printf %s "checking absolute name of <strings.h>... " >&6; }
-if ${gl_cv_next_strings_h+:} false; then :
+if test ${gl_cv_next_strings_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_strings_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <strings.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'strings.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_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'strings.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_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'"'
           else
                gl_cv_next_strings_h='<'strings.h'>'
              fi
@@ -15173,7 +16286,8 @@ printf "%s\n" "$gl_cv_next_strings_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15185,7 +16299,7 @@ else
     #include <strings.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -15193,7 +16307,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -15203,7 +16318,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -15214,7 +16330,8 @@ fi
 
 
 ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strndup" = xyes; then :
+if test "x$ac_cv_have_decl_strndup" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15227,7 +16344,8 @@ _ACEOF
 
 
 ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strnlen" = xyes; then :
+if test "x$ac_cv_have_decl_strnlen" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15242,7 +16360,8 @@ _ACEOF
 
 
 ac_fn_c_check_decl "$LINENO" "strtoumax" "ac_cv_have_decl_strtoumax" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strtoumax" = xyes; then :
+if test "x$ac_cv_have_decl_strtoumax" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15275,40 +16394,45 @@ _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
 printf %s "checking absolute name of <sys/types.h>... " >&6; }
-if ${gl_cv_next_sys_types_h+:} false; then :
+if test ${gl_cv_next_sys_types_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'sys/types.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'sys/types.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        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'"'
 
 
 fi
@@ -15345,7 +16469,8 @@ printf "%s\n" "$gl_cv_next_sys_types_h" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
 printf %s "checking for struct timespec in <time.h>... " >&6; }
-if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
+if test ${gl_cv_sys_struct_timespec_in_time_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15353,14 +16478,15 @@ else
 #include <time.h>
 
 int
-main ()
+main (void)
 {
 static struct timespec x; x.tv_sec = x.tv_nsec;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_timespec_in_time_h=yes
 else
   gl_cv_sys_struct_timespec_in_time_h=no
@@ -15373,12 +16499,14 @@ printf "%s\n" "$gl_cv_sys_struct_timespec_in_time_h" >&6; }
   TIME_H_DEFINES_STRUCT_TIMESPEC=0
   SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
   PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+  UNISTD_H_DEFINES_STRUCT_TIMESPEC=0
   if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
     TIME_H_DEFINES_STRUCT_TIMESPEC=1
   else
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
 printf %s "checking for struct timespec in <sys/time.h>... " >&6; }
-if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+if test ${gl_cv_sys_struct_timespec_in_sys_time_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15386,14 +16514,15 @@ else
 #include <sys/time.h>
 
 int
-main ()
+main (void)
 {
 static struct timespec x; x.tv_sec = x.tv_nsec;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_timespec_in_sys_time_h=yes
 else
   gl_cv_sys_struct_timespec_in_sys_time_h=no
@@ -15407,7 +16536,8 @@ printf "%s\n" "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; }
     else
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
 printf %s "checking for struct timespec in <pthread.h>... " >&6; }
-if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+if test ${gl_cv_sys_struct_timespec_in_pthread_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15415,14 +16545,15 @@ else
 #include <pthread.h>
 
 int
-main ()
+main (void)
 {
 static struct timespec x; x.tv_sec = x.tv_nsec;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_timespec_in_pthread_h=yes
 else
   gl_cv_sys_struct_timespec_in_pthread_h=no
 printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
       if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
         PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+      else
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <unistd.h>" >&5
+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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <unistd.h>
+
+int
+main (void)
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_sys_struct_timespec_in_unistd_h=yes
+else
+  gl_cv_sys_struct_timespec_in_unistd_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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; }
+        if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then
+          UNISTD_H_DEFINES_STRUCT_TIMESPEC=1
+        fi
       fi
     fi
   fi
@@ -15451,45 +16614,51 @@ printf "%s\n" "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
 
 
 
+
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_time_h='<'time.h'>'
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
 printf %s "checking absolute name of <time.h>... " >&6; }
-if ${gl_cv_next_time_h+:} false; then :
+if test ${gl_cv_next_time_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'time.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_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'time.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_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'"'
 
 
 fi
@@ -15520,6 +16689,8 @@ printf "%s\n" "$gl_cv_next_time_h" >&6; }
 
 
 
+
+
 gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
 i\
 0
   fi
 
 ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15555,7 +16727,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_feof_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15566,7 +16739,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_ferror_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_ferror_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15577,7 +16751,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fflush_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15588,7 +16763,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fgets_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15599,7 +16775,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15610,7 +16787,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15621,7 +16799,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fread_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15632,7 +16811,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15643,7 +16823,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getchar_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_getchar_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15654,7 +16835,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_putc_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15665,7 +16847,8 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
-if test "x$ac_cv_have_decl_putchar_unlocked" = xyes; then :
+if test "x$ac_cv_have_decl_putchar_unlocked" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -15675,6 +16858,18 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
 _ACEOF
 
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = xyes
+then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_UNSETENV $ac_have_decl
+_ACEOF
+
 
 
 
@@ -15691,7 +16886,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
 printf %s "checking for inttypes.h... " >&6; }
-if ${gl_cv_header_inttypes_h+:} false; then :
+if test ${gl_cv_header_inttypes_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15701,14 +16897,15 @@ else
 #include <inttypes.h>
 
 int
-main ()
+main (void)
 {
 uintmax_t i = (uintmax_t) -1; return !i;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_inttypes_h=yes
 else
   gl_cv_header_inttypes_h=no
@@ -15728,7 +16925,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
 printf %s "checking for stdint.h... " >&6; }
-if ${gl_cv_header_stdint_h+:} false; then :
+if test ${gl_cv_header_stdint_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15736,14 +16934,15 @@ else
 #include <sys/types.h>
             #include <stdint.h>
 int
-main ()
+main (void)
 {
 uintmax_t i = (uintmax_t) -1; return !i;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_stdint_h=yes
 else
   gl_cv_header_stdint_h=no
@@ -15765,7 +16964,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
 printf %s "checking for intmax_t... " >&6; }
-if ${gt_cv_c_intmax_t+:} false; then :
+if test ${gt_cv_c_intmax_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -15781,14 +16981,15 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
 intmax_t x = -1; return !x;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gt_cv_c_intmax_t=yes
 else
   gt_cv_c_intmax_t=no
@@ -15816,11 +17017,13 @@ _ACEOF
 
   { 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 ${gl_cv_cc_double_expbit0+:} false; then :
+if test ${gl_cv_cc_double_expbit0+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
 
                                                                       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -15831,12 +17034,14 @@ else
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+  $EGREP "mixed_endianness" >/dev/null 2>&1
+then :
   gl_cv_cc_double_expbit0="unknown"
 else
 
                                                          :
-if ${ac_cv_c_bigendian+:} false; then :
+if test ${ac_cv_c_bigendian+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
@@ -15849,7 +17054,8 @@ else
             typedef int dummy;
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
 
        # Check for potential -arch flags.  It is not universal unless
        # there are at least two -arch flags with different values.
@@ -15882,7 +17088,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
             #include <sys/param.h>
 
 int
-main ()
+main (void)
 {
 #if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
                     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
@@ -15894,7 +17100,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+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.  */
@@ -15902,7 +17109,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
                #include <sys/param.h>
 
 int
-main ()
+main (void)
 {
 #if BYTE_ORDER != BIG_ENDIAN
                 not big endian
@@ -15912,7 +17119,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_bigendian=yes
 else
   ac_cv_c_bigendian=no
@@ -15928,7 +17136,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 #include <limits.h>
 
 int
-main ()
+main (void)
 {
 #if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
              bogus endian macros
@@ -15938,14 +17146,15 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   # It does; now see whether it defined to _BIG_ENDIAN or not.
         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
 
 int
-main ()
+main (void)
 {
 #ifndef _BIG_ENDIAN
                 not big endian
@@ -15955,7 +17164,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_bigendian=yes
 else
   ac_cv_c_bigendian=no
@@ -15966,7 +17176,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     fi
     if test $ac_cv_c_bigendian = unknown; then
       # Compile a test program.
-      if test "$cross_compiling" = yes; then :
+      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.  */
@@ -15987,14 +17198,15 @@ short int ascii_mm[] =
                extern int foo;
 
 int
-main ()
+main (void)
 {
 return use_ascii (foo) == use_ebcdic (foo);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
              ac_cv_c_bigendian=yes
            fi
@@ -16013,7 +17225,7 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 
             /* Are we little or big endian?  From Harbison&Steele.  */
@@ -16029,7 +17241,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_c_bigendian=no
 else
   ac_cv_c_bigendian=yes
@@ -16128,7 +17341,8 @@ int main ()
 }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_cc_double_expbit0=`cat conftest.out`
 else
   gl_cv_cc_double_expbit0="unknown"
@@ -16169,17 +17383,19 @@ _ACEOF
 
   { 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 ${gl_cv_func_snprintf_retval_c99+:} false; then :
+if test ${gl_cv_func_snprintf_retval_c99+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
 
          case "$host_os" in
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
@@ -16237,7 +17453,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_snprintf_retval_c99=yes
 else
   gl_cv_func_snprintf_retval_c99=no
@@ -16260,7 +17477,8 @@ printf "%s\n" "$gl_cv_func_snprintf_retval_c99" >&6; }
 do :
   as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16270,7 +17488,8 @@ done
 
       ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
 "
-if test "x$ac_cv_have_decl__snprintf" = xyes; then :
+if test "x$ac_cv_have_decl__snprintf" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -16295,64 +17514,403 @@ printf "%s\n" "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
 
 
 
+  GNULIB_SOCKET=0;
+  GNULIB_CONNECT=0;
+  GNULIB_ACCEPT=0;
+  GNULIB_BIND=0;
+  GNULIB_GETPEERNAME=0;
+  GNULIB_GETSOCKNAME=0;
+  GNULIB_GETSOCKOPT=0;
+  GNULIB_LISTEN=0;
+  GNULIB_RECV=0;
+  GNULIB_SEND=0;
+  GNULIB_RECVFROM=0;
+  GNULIB_SENDTO=0;
+  GNULIB_SETSOCKOPT=0;
+  GNULIB_SHUTDOWN=0;
+  GNULIB_ACCEPT4=0;
+  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
+                         for ac_header in ws2tcpip.h
+do :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WS2TCPIP_H 1
+_ACEOF
 
+fi
+done
 
+   fi
 
 
 
-  { 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 ${gt_cv_var_environ_declaration+:} false; then :
+
+
+        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
 
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+      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>
+#include <sys/socket.h>
+int
+main (void)
+{
 
-           extern struct { int foo; } environ;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_sys_socket_h_selfcontained=yes
+else
+  gl_cv_header_sys_socket_h_selfcontained=no
+fi
+rm -f core conftest.err conftest.$ac_objext 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
+            for ac_func in shutdown
+do :
+  ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown"
+if test "x$ac_cv_func_shutdown" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SHUTDOWN 1
+_ACEOF
+
+fi
+done
+
+    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
+
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/socket.h>
 int
-main ()
+main (void)
 {
-environ.foo = 1;
+int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_var_environ_declaration=no
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_sys_socket_h_shut=yes
 else
-  gt_cv_var_environ_declaration=yes
+  gl_cv_header_sys_socket_h_shut=no
 fi
 rm -f core conftest.err conftest.$ac_objext 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
+
+             if test $ac_cv_header_sys_socket_h = yes; then
+
 
-  { 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
 
+  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
+    HAVE_WS2TCPIP_H=0
+  else
+    HAVE_SYS_SOCKET_H=0
+    if test $ac_cv_header_ws2tcpip_h = yes; then
+      HAVE_WS2TCPIP_H=1
+    else
+      HAVE_WS2TCPIP_H=0
+    fi
   fi
 
 
-  if test $gt_cv_var_environ_declaration != yes; then
-    HAVE_DECL_ENVIRON=0
+
+  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 :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+_ACEOF
+
+
+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 :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SA_FAMILY_T 1
+_ACEOF
+
+
+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 :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1
+_ACEOF
+
+
+else
+  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
+                    for ac_header in winsock2.h
+do :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+
+
+    for gl_func in socket connect accept bind getpeername getsockname getsockopt     listen recv send recvfrom sendto setsockopt shutdown accept4; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Some systems require prerequisite headers.  */
+#include <sys/types.h>
+#include <sys/socket.h>
+
+int
+main (void)
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+  GNULIB_INET_NTOP=0;
+  GNULIB_INET_PTON=0;
+    HAVE_DECL_INET_NTOP=1;
+  HAVE_DECL_INET_PTON=1;
+  REPLACE_INET_NTOP=0;
+  REPLACE_INET_PTON=0;
+
+
+
+
 
 
 
    { 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 ${gl_cv_func_getcwd_null+:} false; then :
+if test ${gl_cv_func_getcwd_null+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                      # Guess yes on glibc systems.
             *-gnu*)  gl_cv_func_getcwd_null="guessing yes";;
@@ -16366,6 +17924,7 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
+#       include <stdlib.h>
 #        if HAVE_UNISTD_H
 #         include <unistd.h>
 #        else /* on Windows with MSVC */
@@ -16376,7 +17935,7 @@ else
 #        endif
 
 int
-main ()
+main (void)
 {
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
@@ -16394,6 +17953,7 @@ main ()
                  return 3;
                if (f[1] != '\0')
                  return 4;
+               free (f);
                return 0;
              }
 #endif
@@ -16402,7 +17962,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_getcwd_null=yes
 else
   gl_cv_func_getcwd_null=no
@@ -16418,14 +17979,15 @@ printf "%s\n" "$gl_cv_func_getcwd_null" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
 printf %s "checking for getcwd with POSIX signature... " >&6; }
-if ${gl_cv_func_getcwd_posix_signature+:} false; then :
+if test ${gl_cv_func_getcwd_posix_signature+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
 int
-main ()
+main (void)
 {
 extern
            #ifdef __cplusplus
@@ -16438,7 +18000,8 @@ extern
 }
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_getcwd_posix_signature=yes
 else
   gl_cv_func_getcwd_posix_signature=no
@@ -16451,77 +18014,760 @@ printf "%s\n" "$gl_cv_func_getcwd_posix_signature" >&6; }
 
 
 
-ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
-if test "x$ac_cv_have_decl_setenv" = xyes; then :
-  ac_have_decl=1
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv4 sockets" >&5
+printf %s "checking for IPv4 sockets... " >&6; }
+  if test ${gl_cv_socket_ipv4+y}
+then :
+  printf %s "(cached) " >&6
 else
-  ac_have_decl=0
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+int
+main (void)
+{
+int x = AF_INET; struct in_addr y; struct sockaddr_in z;
+ if (&x && &y && &z) return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_socket_ipv4=yes
+else
+  gl_cv_socket_ipv4=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SETENV $ac_have_decl
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv4" >&5
+printf "%s\n" "$gl_cv_socket_ipv4" >&6; }
+  if test $gl_cv_socket_ipv4 = yes; then
+
+printf "%s\n" "#define HAVE_IPV4 1" >>confdefs.h
+
+  fi
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 sockets" >&5
+printf %s "checking for IPv6 sockets... " >&6; }
+  if test ${gl_cv_socket_ipv6+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+int
+main (void)
+{
+int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
+ if (&x && &y && &z) return 0;
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_socket_ipv6=yes
+else
+  gl_cv_socket_ipv6=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
 
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socket_ipv6" >&5
+printf "%s\n" "$gl_cv_socket_ipv6" >&6; }
+  if test $gl_cv_socket_ipv6 = yes; then
 
+printf "%s\n" "#define HAVE_IPV6 1" >>confdefs.h
 
+  fi
 
 
 
-  if test $ac_cv_have_decl_setenv = no; then
-    HAVE_DECL_SETENV=0
+
+  GNULIB_PSELECT=0;
+  GNULIB_SELECT=0;
+    HAVE_PSELECT=1;
+  REPLACE_PSELECT=0;
+  REPLACE_SELECT=0;
+
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/select.h> is self-contained" >&5
+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
+
+                                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
+int
+main (void)
+{
+struct timeval b;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_sys_select_h_selfcontained=yes
+else
+  gl_cv_header_sys_select_h_selfcontained=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                        if test $gl_cv_header_sys_select_h_selfcontained = yes; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
+int
+main (void)
+{
+int memset; int bzero;
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
+int
+main (void)
+{
+
+                  #undef memset
+                  #define memset nonexistent_memset
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void *memset (void *, int, unsigned long);
+                  #undef bzero
+                  #define bzero nonexistent_bzero
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void bzero (void *, unsigned long);
+                  fd_set fds;
+                  FD_ZERO (&fds);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+
+else
+  gl_cv_header_sys_select_h_selfcontained=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      fi
+
+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; }
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_select_h='<'sys/select.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/select.h>" >&5
+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
+
+             if test $ac_cv_header_sys_select_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.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/select.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_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'"'
+          else
+               gl_cv_next_sys_select_h='<'sys/select.h'>'
+             fi
+
+
+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; }
+     fi
+     NEXT_SYS_SELECT_H=$gl_cv_next_sys_select_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/select.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_select_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H=$gl_next_as_first_directive
+
+
+
+
+  if test $ac_cv_header_sys_select_h = yes; then
+    HAVE_SYS_SELECT_H=1
+  else
+    HAVE_SYS_SELECT_H=0
   fi
 
 
 
 
 
-  for ac_header in search.h
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
-if test "x$ac_cv_header_search_h" = xyes; then :
+  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 :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_SEARCH_H 1
+#define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
-
 done
 
-  for ac_func in tsearch
+  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
+
+
+
+
+    for gl_func in pselect select; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Some systems require prerequisite headers.  */
+#include <sys/types.h>
+#if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#include <sys/select.h>
+
+int
+main (void)
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
 do :
-  ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
-if test "x$ac_cv_func_tsearch" = xyes; 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 :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_TSEARCH 1
+#define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
 done
 
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
 
+   LIBSOCKET=
+  if test $HAVE_WINSOCK2_H = 1; then
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we need to call WSAStartup in winsock2.h and -lws2_32" >&5
+printf %s "checking if we need to call WSAStartup in winsock2.h and -lws2_32... " >&6; }
+if test ${gl_cv_func_wsastartup+y}
+then :
+  printf %s "(cached) " >&6
+else
 
+      gl_save_LIBS="$LIBS"
+      LIBS="$LIBS -lws2_32"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+#endif
+int
+main (void)
+{
 
-ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default"
-if test "x$ac_cv_have_decl_snprintf" = xyes; then :
-  ac_have_decl=1
+          WORD wVersionRequested = MAKEWORD(1, 1);
+          WSADATA wsaData;
+          int err = WSAStartup(wVersionRequested, &wsaData);
+          WSACleanup ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_func_wsastartup=yes
 else
-  ac_have_decl=0
+  gl_cv_func_wsastartup=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+      LIBS="$gl_save_LIBS"
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_SNPRINTF $ac_have_decl
+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
+
+      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
+
+      gl_cv_lib_socket=
+      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 :
 
-ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
-if test "x$ac_cv_have_decl_unsetenv" = xyes; then :
+else
+  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
+rm -f core conftest.err conftest.$ac_objext \
+    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 :
+  gl_cv_lib_socket="-lnetwork"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    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.  */
+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="-lnet"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+           fi
+         fi
+         LIBS="$gl_save_LIBS"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+      if test -z "$gl_cv_lib_socket"; then
+        gl_cv_lib_socket="none needed"
+      fi
+
+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
+
+
+
+
+
+
+  :
+
+
+
+
+
+
+  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
+
+        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
+  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
+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
+  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
+
+        if test "$cross_compiling" = yes
+then :
+
+           case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_select_detects_ebadf="guessing no" ;;
+           esac
+
+else
+  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>
+
+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
+  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
+
+
+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.  */
+
+#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
+  LIB_SELECT="$LIB_SELECT -luser32"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        ;;
+    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_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
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_snprintf" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
 fi
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_UNSETENV $ac_have_decl
+#define HAVE_DECL_SNPRINTF $ac_have_decl
 _ACEOF
 
 
@@ -16529,6 +18775,14 @@ _ACEOF
 
 
 
+
+
+
+
+
+
+
+
    if false; then
   GL_COND_LIBTOOL_TRUE=
   GL_COND_LIBTOOL_FALSE='#'
@@ -16561,7 +18815,8 @@ fi
   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 ${gl_cv_rpl_alloca+:} false; then :
+if test ${gl_cv_rpl_alloca+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -16574,7 +18829,8 @@ else
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Need own alloca" >/dev/null 2>&1; then :
+  $EGREP "Need own alloca" >/dev/null 2>&1
+then :
   gl_cv_rpl_alloca=yes
 else
   gl_cv_rpl_alloca=no
 
         { 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 ${gl_cv_func_btowc_nul+:} false; then :
+if test ${gl_cv_func_btowc_nul+y}
+then :
   printf %s "(cached) " >&6
 else
 
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
 
            case "$host_os" in
                       # Guess no on Cygwin.
@@ -16654,7 +18912,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_btowc_nul=yes
 else
   gl_cv_func_btowc_nul=no
@@ -16670,7 +18929,8 @@ 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 ${gl_cv_func_btowc_eof+:} false; then :
+if test ${gl_cv_func_btowc_eof+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -16681,7 +18941,8 @@ else
           *)     gl_cv_func_btowc_eof="guessing yes" ;;
         esac
         if test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes; then :
+          if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -16707,7 +18968,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_btowc_eof=yes
 else
   gl_cv_func_btowc_eof=no
@@ -16772,7 +19034,8 @@ printf "%s\n" "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
 
    ac_fn_c_check_decl "$LINENO" "sigaltstack" "ac_cv_have_decl_sigaltstack" "#include <signal.h>
 "
-if test "x$ac_cv_have_decl_sigaltstack" = xyes; then :
+if test "x$ac_cv_have_decl_sigaltstack" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -16787,7 +19050,8 @@ _ACEOF
 
    ac_fn_c_check_type "$LINENO" "stack_t" "ac_cv_type_stack_t" "#include <signal.h>
 "
-if test "x$ac_cv_type_stack_t" = xyes; then :
+if test "x$ac_cv_type_stack_t" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STACK_T 1
@@ -16821,7 +19085,8 @@ fi
   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 ${ac_cv_search_clock_gettime+:} false; then :
+if test ${ac_cv_search_clock_gettime+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -16836,30 +19101,34 @@ extern "C"
 #endif
 char clock_gettime ();
 int
-main ()
+main (void)
 {
 return clock_gettime ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' rt posix4; do
+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 :
+  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$ac_exeext
-  if ${ac_cv_search_clock_gettime+:} false; then :
+  if test ${ac_cv_search_clock_gettime+y}
+then :
   break
 fi
 done
-if ${ac_cv_search_clock_gettime+:} false; then :
+if test ${ac_cv_search_clock_gettime+y}
+then :
 
 else
   ac_cv_search_clock_gettime=no
@@ -16870,7 +19139,8 @@ 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 :
+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
@@ -16880,7 +19150,8 @@ fi
 do :
   as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+if eval test \"x\$"$as_ac_var"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -16904,14 +19175,14 @@ done
   if test $ac_cv_header_sys_socket_h != yes; then
                     for ac_header in winsock2.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes; then :
+  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 :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
-
 done
 
   fi
@@ -16991,6 +19262,10 @@ printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
     localedir='${datarootdir}/locale'
 
   fi
+    if test "x$runstatedir" = x; then
+    runstatedir='${localstatedir}/run'
+
+  fi
 
       pkglibexecdir='${libexecdir}/${PACKAGE}'
 
@@ -17000,6 +19275,126 @@ printf "%s\n" "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
 
 
 
+
+
+
+
+
+
+     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
+
+
+
+  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'"'
+
+
+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
+
+
+
+
+
+
+    for gl_func in isblank; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+
+int
+main (void)
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
+
+
+
+
+
 cat >>confdefs.h <<_ACEOF
 #define GNULIB_DIRNAME 1
 _ACEOF
@@ -17013,7 +19408,8 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
 printf %s "checking whether // is distinct from /... " >&6; }
-if ${gl_cv_double_slash_root+:} false; then :
+if test ${gl_cv_double_slash_root+y}
+then :
   printf %s "(cached) " >&6
 else
    if test x"$cross_compiling" = xyes ; then
@@ -17059,62 +19455,96 @@ printf "%s\n" "#define HAVE_DUP2 1" >>confdefs.h
   if test $HAVE_DUP2 = 1; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
 printf %s "checking whether dup2 works... " >&6; }
-if ${gl_cv_func_dup2_works+:} false; then :
+if test ${gl_cv_func_dup2_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  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" ;;
-           linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a
-                   # closed fd may yield -EBADF instead of -1 / errno=EBADF.
-             gl_cv_func_dup2_works="guessing no" ;;
-           freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
+           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
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-         #include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
+         #include <errno.h>
+             #include <fcntl.h>
+             #include <limits.h>
+             #include <sys/resource.h>
+             #include <unistd.h>
+             #ifndef RLIM_SAVED_CUR
+             # define RLIM_SAVED_CUR RLIM_INFINITY
+             #endif
+             #ifndef RLIM_SAVED_MAX
+             # define RLIM_SAVED_MAX RLIM_INFINITY
+             #endif
+
 int
-main ()
+main (void)
 {
 int result = 0;
-#ifdef FD_CLOEXEC
-            if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
-              result |= 1;
-#endif
-            if (dup2 (1, 1) == 0)
-              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, 1000000) == -1 && errno != EBADF)
-              result |= 16;
-            /* Flush out a cygwin core dump.  */
-            if (dup2 (2, -1) != -1 || errno != EBADF)
-              result |= 32;
-            return result;
+             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_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_dup2_works=yes
 else
   gl_cv_func_dup2_works=no
@@ -17131,6 +19561,18 @@ printf "%s\n" "$gl_cv_func_dup2_works" >&6; }
       *yes) ;;
       *)
         REPLACE_DUP2=1
+        for ac_func in setdtablesize
+do :
+  ac_fn_c_check_func "$LINENO" "setdtablesize" "ac_cv_func_setdtablesize"
+if test "x$ac_cv_func_setdtablesize" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SETDTABLESIZE 1
+_ACEOF
+
+fi
+done
+
         ;;
     esac
   fi
@@ -17166,23 +19608,41 @@ printf "%s\n" "#define GNULIB_TEST_DUP2 1" >>confdefs.h
 
 
 
+
+
+
+
+          GNULIB_ENVIRON=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
 printf %s "checking for error_at_line... " >&6; }
-if ${ac_cv_lib_error_at_line+:} false; then :
+if test ${ac_cv_lib_error_at_line+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <error.h>
 int
-main ()
+main (void)
 {
 error_at_line (0, 0, "", 0, "an error occurred");
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_lib_error_at_line=yes
 else
   ac_cv_lib_error_at_line=no
@@ -17236,35 +19696,66 @@ printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
   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 ${gl_cv_func_fcntl_f_dupfd_works+:} false; then :
+if test ${gl_cv_func_fcntl_f_dupfd_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
-  # Guess that it works on glibc systems
-          case $host_os in #((
-            *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";;
-            *)      gl_cv_func_fcntl_f_dupfd_works="guessing no";;
+  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
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <fcntl.h>
 #include <errno.h>
+              #include <fcntl.h>
+              #include <limits.h>
+              #include <sys/resource.h>
+              #include <unistd.h>
+              #ifndef RLIM_SAVED_CUR
+              # define RLIM_SAVED_CUR RLIM_INFINITY
+              #endif
+              #ifndef RLIM_SAVED_MAX
+              # define RLIM_SAVED_MAX RLIM_INFINITY
+              #endif
 
 int
-main ()
+main (void)
 {
 int result = 0;
-      if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
-      if (errno != EINVAL) result |= 2;
-      return result;
-
+              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 :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_fcntl_f_dupfd_works=yes
 else
   gl_cv_func_fcntl_f_dupfd_works=no
@@ -17294,7 +19785,8 @@ printf "%s\n" "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
 
         { 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 ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then :
+if test ${gl_cv_func_fcntl_f_dupfd_cloexec+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17306,14 +19798,15 @@ choke me
 #endif
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -17324,14 +19817,15 @@ choke me
 #endif
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_fcntl_f_dupfd_cloexec=yes
 else
   gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
@@ -17401,40 +19895,45 @@ printf "%s\n" "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
 printf %s "checking absolute name of <fcntl.h>... " >&6; }
-if ${gl_cv_next_fcntl_h+:} false; then :
+if test ${gl_cv_next_fcntl_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <fcntl.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'fcntl.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_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'fcntl.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_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'"'
 
 
 fi
@@ -17465,7 +19964,8 @@ printf "%s\n" "$gl_cv_next_fcntl_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17473,7 +19973,7 @@ else
 #include <fcntl.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -17481,7 +19981,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -17491,7 +19992,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -17515,6 +20017,50 @@ _ACEOF
 
 
 
+  { 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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+            #include <stdio.h>
+            #include <stddef.h>
+            struct s { int n; double d[]; };
+int
+main (void)
+{
+int m = getchar ();
+            struct s *p = malloc (offsetof (struct s, d)
+                                  + m * sizeof (double));
+            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
+  ac_cv_c_flexmember=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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
+
+
 
 
   FLOAT_H=
@@ -17538,7 +20084,8 @@ _ACEOF
              #endif
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
 
 else
   FLOAT_H=float.h
@@ -17567,11 +20114,13 @@ rm -rf conftest*
     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 ${gl_cv_func_itold_works+:} false; then :
+if test ${gl_cv_func_itold_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
   case "$host" in
            sparc*-*-linux*)
              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17581,7 +20130,8 @@ else
                 #endif
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
+  $EGREP "yes" >/dev/null 2>&1
+then :
   gl_cv_func_itold_works="guessing no"
 else
   gl_cv_func_itold_works="guessing yes"
@@ -17606,7 +20156,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_itold_works=yes
 else
   gl_cv_func_itold_works=no
@@ -17640,40 +20191,45 @@ printf "%s\n" "$gl_cv_func_itold_works" >&6; }
      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 ${gl_cv_next_float_h+:} false; then :
+if test ${gl_cv_next_float_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               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
+                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_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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
@@ -17742,7 +20298,8 @@ fi
   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 \${$gl_fnmatch_cache_var+:} false; then :
+if eval test \${$gl_fnmatch_cache_var+y}
+then :
   printf %s "(cached) " >&6
 else
                            if test $gl_fnmatch_required = GNU; then
@@ -17752,7 +20309,8 @@ else
        gl_fnmatch_gnu_start='#if 0'
        gl_fnmatch_gnu_end='#endif'
      fi
-     if test "$cross_compiling" = yes; then :
+     if test "$cross_compiling" = yes
+then :
   eval "$gl_fnmatch_cache_var=\"guessing no\""
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -17770,7 +20328,7 @@ else
             }
 
 int
-main ()
+main (void)
 {
 char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
             char const *apat = 'a' < '\\\\' ? "[a-\\\\\\\\]" : "[\\\\\\\\-a]";
@@ -17841,7 +20399,8 @@ char const *Apat = 'A' < '\\\\' ? "[A-\\\\\\\\]" : "[\\\\\\\\-A]";
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   eval "$gl_fnmatch_cache_var=yes"
 else
   eval "$gl_fnmatch_cache_var=no"
@@ -17891,7 +20450,8 @@ _ACEOF
 
   ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
 "
-if test "x$ac_cv_have_decl_isblank" = xyes; then :
+if test "x$ac_cv_have_decl_isblank" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -17930,7 +20490,8 @@ _ACEOF
 
   ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
 "
-if test "x$ac_cv_have_decl_isblank" = xyes; then :
+if test "x$ac_cv_have_decl_isblank" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -17948,7 +20509,7 @@ _ACEOF
 
 
   case "$host_os" in
-    mingw* | pw*)
+    mingw* | pw* | os2*)
       REPLACE_FREOPEN=1
       ;;
   esac
@@ -18034,11 +20595,67 @@ printf "%s\n" "#define GNULIB_TEST_FSTAT 1" >>confdefs.h
 
 
 
-  if test $ac_cv_func_getdtablesize != yes; then
+
+
+  if test $ac_cv_func_getdtablesize = yes &&
+     test $ac_cv_have_decl_getdtablesize = yes; then
+    # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
+    # up to an unchangeable hard limit; all other platforms correctly
+    # require setrlimit before getdtablesize() can report a larger value.
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether getdtablesize works" >&5
+printf %s "checking whether getdtablesize works... " >&6; }
+if test ${gl_cv_func_getdtablesize_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+          cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+            gl_cv_func_getdtablesize_works="guessing no" ;;
+          *) gl_cv_func_getdtablesize_works="guessing yes" ;;
+         esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+        #include <unistd.h>
+int
+main (void)
+{
+int size = getdtablesize();
+           if (dup2 (0, getdtablesize()) != -1)
+             return 1;
+           if (size != getdtablesize())
+             return 2;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_getdtablesize_works=yes
+else
+  gl_cv_func_getdtablesize_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_getdtablesize_works" >&5
+printf "%s\n" "$gl_cv_func_getdtablesize_works" >&6; }
+    case "$gl_cv_func_getdtablesize_works" in
+      *yes) ;;
+      *) REPLACE_GETDTABLESIZE=1 ;;
+    esac
+  else
     HAVE_GETDTABLESIZE=0
   fi
 
-  if test $HAVE_GETDTABLESIZE = 0; then
+  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
 
 
 
@@ -18172,10 +20789,12 @@ printf "%s\n" "#define __GETOPT_PREFIX rpl_" >>confdefs.h
 
  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5
 printf %s "checking whether gettimeofday clobbers localtime buffer... " >&6; }
-if ${gl_cv_func_gettimeofday_clobber+:} false; then :
+if test ${gl_cv_func_gettimeofday_clobber+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   # When cross-compiling:
       case "$host_os" in
                 # Guess all is fine on glibc systems.
@@ -18193,7 +20812,7 @@ else
           #include <stdlib.h>
 
 int
-main ()
+main (void)
 {
 
           time_t t = 0;
@@ -18209,7 +20828,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_gettimeofday_clobber=no
 else
   gl_cv_func_gettimeofday_clobber=yes
@@ -18226,12 +20846,8 @@ printf "%s\n" "$gl_cv_func_gettimeofday_clobber" >&6; }
    *yes)
      REPLACE_GETTIMEOFDAY=1
 
-
-printf "%s\n" "#define gmtime rpl_gmtime" >>confdefs.h
-
-
-printf "%s\n" "#define localtime rpl_localtime" >>confdefs.h
-
+  REPLACE_GMTIME=1
+  REPLACE_LOCALTIME=1
 
 
 printf "%s\n" "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
@@ -18241,7 +20857,8 @@ printf "%s\n" "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5
 printf %s "checking for gettimeofday with POSIX signature... " >&6; }
-if ${gl_cv_func_gettimeofday_posix_signature+:} false; then :
+if test ${gl_cv_func_gettimeofday_posix_signature+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18251,7 +20868,7 @@ else
               int gettimeofday (struct timeval *restrict, void *restrict);
 
 int
-main ()
+main (void)
 {
 /* glibc uses struct timezone * rather than the POSIX void *
                  if _GNU_SOURCE is defined.  However, since the only portable
@@ -18267,7 +20884,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_gettimeofday_posix_signature=yes
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18276,14 +20894,15 @@ else
 int gettimeofday (struct timeval *restrict, struct timezone *restrict);
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_gettimeofday_posix_signature=almost
 else
   gl_cv_func_gettimeofday_posix_signature=no
@@ -18324,20 +20943,21 @@ _ACEOF
 
   for ac_header in sys/timeb.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_TIMEB_H 1
 _ACEOF
 
 fi
-
 done
 
   for ac_func in _ftime
 do :
   ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
-if test "x$ac_cv_func__ftime" = xyes; then :
+if test "x$ac_cv_func__ftime" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE__FTIME 1
 _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <iconv.h>" >&5
 printf %s "checking absolute name of <iconv.h>... " >&6; }
-if ${gl_cv_next_iconv_h+:} false; then :
+if test ${gl_cv_next_iconv_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_iconv_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <iconv.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'iconv.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_iconv_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'iconv.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_iconv_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_iconv_h
+           gl_cv_next_iconv_h='"'$gl_header'"'
           else
                gl_cv_next_iconv_h='<'iconv.h'>'
              fi
@@ -18499,7 +21124,8 @@ fi
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "gnu_iconv" >/dev/null 2>&1; then :
+  $EGREP "gnu_iconv" >/dev/null 2>&1
+then :
   gl_func_iconv_gnu=yes
 else
   gl_func_iconv_gnu=no
@@ -18579,7 +21205,8 @@ 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 ${gl_cv_c_inline_effective+:} false; then :
+if test ${gl_cv_c_inline_effective+y}
+then :
   printf %s "(cached) " >&6
 else
   if test $ac_cv_c_inline = no; then
@@ -18589,7 +21216,7 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 #ifdef __NO_INLINE__
                #error "inline is not effective"
@@ -18598,7 +21225,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_c_inline_effective=yes
 else
   gl_cv_c_inline_effective=no
@@ -18647,14 +21275,15 @@ printf "%s\n" "#define HAVE_INLINE 1" >>confdefs.h
            extern intptr_t foo;
            extern $gltype1 foo;
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   PRIPTR_PREFIX='"'$glpfx'"'
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -18666,7 +21295,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
 printf %s "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
-if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
+if test ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18691,14 +21321,15 @@ else
             #endif
             int test[CONDITION ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
 else
   gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no
@@ -18718,7 +21349,8 @@ printf "%s\n" "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
 printf %s "checking whether INT64_MAX == LONG_MAX... " >&6; }
-if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+if test ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18743,14 +21375,15 @@ else
             #endif
             int test[CONDITION ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
 else
   gl_cv_test_INT64_MAX_EQ_LONG_MAX=no
@@ -18772,7 +21405,8 @@ printf "%s\n" "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
 printf %s "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
-if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+if test ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18797,14 +21431,15 @@ else
             #endif
             int test[CONDITION ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
 else
   gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no
@@ -18824,7 +21459,8 @@ printf "%s\n" "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
 printf %s "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
-if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+if test ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -18849,14 +21485,15 @@ else
             #endif
             int test[CONDITION ? 1 : -1];
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
 else
   gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no
@@ -18883,6 +21520,37 @@ printf "%s\n" "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
 
 
 
+  if test $ac_cv_func_isblank = no; then
+    HAVE_ISBLANK=0
+  fi
+
+  if test $HAVE_ISBLANK = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS isblank.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_ISBLANK=1
+
+
+
+
+
+
+
+
+
   ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
 /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
    <wchar.h>.
@@ -18895,7 +21563,8 @@ printf "%s\n" "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; }
 #include <wctype.h>
 
 "
-if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+if test "x$ac_cv_have_decl_iswblank" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -18970,43 +21639,48 @@ printf "%s\n" "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
 printf %s "checking absolute name of <langinfo.h>... " >&6; }
-if ${gl_cv_next_langinfo_h+:} false; then :
+if test ${gl_cv_next_langinfo_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_langinfo_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <langinfo.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'langinfo.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_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'langinfo.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_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'"'
           else
                gl_cv_next_langinfo_h='<'langinfo.h'>'
              fi
@@ -19040,7 +21714,8 @@ printf "%s\n" "$gl_cv_next_langinfo_h" >&6; }
     HAVE_LANGINFO_H=1
             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
 printf %s "checking whether langinfo.h defines CODESET... " >&6; }
-if ${gl_cv_header_langinfo_codeset+:} false; then :
+if test ${gl_cv_header_langinfo_codeset+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19049,14 +21724,15 @@ else
 int a = CODESET;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_langinfo_codeset=yes
 else
   gl_cv_header_langinfo_codeset=no
@@ -19071,7 +21747,8 @@ printf "%s\n" "$gl_cv_header_langinfo_codeset" >&6; }
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
 printf %s "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
-if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
+if test ${gl_cv_header_langinfo_t_fmt_ampm+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19080,14 +21757,15 @@ else
 int a = T_FMT_AMPM;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_langinfo_t_fmt_ampm=yes
 else
   gl_cv_header_langinfo_t_fmt_ampm=no
@@ -19102,7 +21780,8 @@ printf "%s\n" "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
 printf %s "checking whether langinfo.h defines ERA... " >&6; }
-if ${gl_cv_header_langinfo_era+:} false; then :
+if test ${gl_cv_header_langinfo_era+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19111,14 +21790,15 @@ else
 int a = ERA;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_langinfo_era=yes
 else
   gl_cv_header_langinfo_era=no
@@ -19133,7 +21813,8 @@ printf "%s\n" "$gl_cv_header_langinfo_era" >&6; }
     fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
 printf %s "checking whether langinfo.h defines YESEXPR... " >&6; }
-if ${gl_cv_header_langinfo_yesexpr+:} false; then :
+if test ${gl_cv_header_langinfo_yesexpr+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19142,14 +21823,15 @@ else
 int a = YESEXPR;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_langinfo_yesexpr=yes
 else
   gl_cv_header_langinfo_yesexpr=no
@@ -19176,7 +21858,8 @@ printf "%s\n" "$gl_cv_header_langinfo_yesexpr" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19184,7 +21867,7 @@ else
 #include <langinfo.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -19192,7 +21875,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -19202,7 +21886,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -19242,7 +21927,8 @@ fi
 
 
 # Check whether --with-libsigsegv-prefix was given.
-if test "${with_libsigsegv_prefix+set}" = set; then :
+if test ${with_libsigsegv_prefix+y}
+then :
   withval=$with_libsigsegv_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -19709,7 +22395,8 @@ fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsigsegv" >&5
 printf %s "checking for libsigsegv... " >&6; }
-if ${ac_cv_libsigsegv+:} false; then :
+if test ${ac_cv_libsigsegv+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -19722,14 +22409,15 @@ else
 /* end confdefs.h.  */
 #include <sigsegv.h>
 int
-main ()
+main (void)
 {
 sigsegv_deinstall_handler();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_libsigsegv=yes
 else
   ac_cv_libsigsegv='no, consider installing GNU libsigsegv'
@@ -19794,7 +22482,8 @@ printf "%s\n" "#define _LCONV_C99 1" >>confdefs.h
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5
 printf %s "checking whether locale.h conforms to POSIX:2001... " >&6; }
-if ${gl_cv_header_locale_h_posix2001+:} false; then :
+if test ${gl_cv_header_locale_h_posix2001+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19803,14 +22492,15 @@ else
             int x = LC_MESSAGES;
             int y = sizeof (((struct lconv *) 0)->decimal_point);
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_locale_h_posix2001=yes
 else
   gl_cv_header_locale_h_posix2001=no
@@ -19825,7 +22515,8 @@ printf "%s\n" "$gl_cv_header_locale_h_posix2001" >&6; }
     HAVE_XLOCALE_H=1
                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5
 printf %s "checking whether locale.h defines locale_t... " >&6; }
-if ${gl_cv_header_locale_has_locale_t+:} false; then :
+if test ${gl_cv_header_locale_has_locale_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19833,14 +22524,15 @@ else
 #include <locale.h>
               locale_t x;
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_header_locale_has_locale_t=yes
 else
   gl_cv_header_locale_has_locale_t=no
@@ -19863,7 +22555,8 @@ printf "%s\n" "$gl_cv_header_locale_has_locale_t" >&6; }
 
           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5
 printf %s "checking whether struct lconv is properly defined... " >&6; }
-if ${gl_cv_sys_struct_lconv_ok+:} false; then :
+if test ${gl_cv_sys_struct_lconv_ok+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19873,14 +22566,15 @@ else
             int x = sizeof (l.decimal_point);
             int y = sizeof (l.int_p_cs_precedes);
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_sys_struct_lconv_ok=yes
 else
   gl_cv_sys_struct_lconv_ok=no
@@ -19907,40 +22601,45 @@ printf "%s\n" "$gl_cv_sys_struct_lconv_ok" >&6; }
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <locale.h>" >&5
 printf %s "checking absolute name of <locale.h>... " >&6; }
-if ${gl_cv_next_locale_h+:} false; then :
+if test ${gl_cv_next_locale_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <locale.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'locale.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'locale.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_locale_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_locale_h
+           gl_cv_next_locale_h='"'$gl_header'"'
 
 
 fi
@@ -19967,7 +22666,8 @@ printf "%s\n" "$gl_cv_next_locale_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -19979,7 +22679,7 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -19987,7 +22687,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -19997,7 +22698,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -20029,7 +22731,8 @@ fi
 
   ac_fn_c_check_member "$LINENO" "struct lconv" "decimal_point" "ac_cv_member_struct_lconv_decimal_point" "#include <locale.h>
 "
-if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes; then :
+if test "x$ac_cv_member_struct_lconv_decimal_point" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_LCONV_DECIMAL_POINT 1
@@ -20101,97 +22804,6 @@ printf "%s\n" "#define GNULIB_TEST_LSTAT 1" >>confdefs.h
 
 
 
-      for ac_header in stdlib.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdlib_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STDLIB_H 1
-_ACEOF
-
-fi
-
-done
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
-printf %s "checking for GNU libc compatible malloc... " >&6; }
-if ${ac_cv_func_malloc_0_nonnull+:} false; then :
-  printf %s "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-          # Guess yes on platforms where we know the result.
-          *-gnu* | freebsd* | netbsd* | openbsd* \
-          | hpux* | solaris* | cygwin* | mingw*)
-            ac_cv_func_malloc_0_nonnull=yes ;;
-          # If we don't know, assume the worst.
-          *) ac_cv_func_malloc_0_nonnull=no ;;
-        esac
-
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined STDC_HEADERS || defined HAVE_STDLIB_H
-            # include <stdlib.h>
-            #else
-            char *malloc ();
-            #endif
-
-int
-main ()
-{
-return ! malloc (0);
-  ;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_func_malloc_0_nonnull=yes
-else
-  ac_cv_func_malloc_0_nonnull=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: $ac_cv_func_malloc_0_nonnull" >&5
-printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
-  if test $ac_cv_func_malloc_0_nonnull = yes; then :
-
-printf "%s\n" "#define HAVE_MALLOC_GNU 1" >>confdefs.h
-
-else
-  printf "%s\n" "#define HAVE_MALLOC_GNU 0" >>confdefs.h
-
-     REPLACE_MALLOC=1
-
-fi
-
-
-  if test $REPLACE_MALLOC = 1; then
-
-
-
-
-
-
-
-
-  gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
-
-  fi
-
-
-cat >>confdefs.h <<_ACEOF
-#define GNULIB_MALLOC_GNU 1
-_ACEOF
-
-
-
-
 
   if test $gl_cv_func_malloc_posix = yes; then
 
@@ -20255,7 +22867,8 @@ printf "%s\n" "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
 
      { 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 ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+if test ${gl_cv_func_mbrtowc_incomplete_state+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20266,7 +22879,8 @@ else
         *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
       esac
       if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20298,7 +22912,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_incomplete_state=yes
 else
   gl_cv_func_mbrtowc_incomplete_state=no
@@ -20318,7 +22933,8 @@ 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 ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+if test ${gl_cv_func_mbrtowc_sanitycheck+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20329,7 +22945,8 @@ else
         *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
       esac
       if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20365,7 +22982,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_sanitycheck=yes
 else
   gl_cv_func_mbrtowc_sanitycheck=no
@@ -20408,7 +23026,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+if test "x$ac_cv_have_decl_mbrtowc" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -20430,7 +23049,8 @@ _ACEOF
 
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
 printf %s "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
-if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+if test ${gl_cv_func_mbrtowc_null_arg1+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20441,7 +23061,8 @@ else
         *)        gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
       esac
       if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20487,7 +23108,8 @@ int main ()
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_null_arg1=yes
 else
   gl_cv_func_mbrtowc_null_arg1=no
@@ -20507,7 +23129,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_null_arg1" >&6; }
 
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
 printf %s "checking whether mbrtowc handles a NULL string argument... " >&6; }
-if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
+if test ${gl_cv_func_mbrtowc_null_arg2+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20518,7 +23141,8 @@ else
         *)    gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
       esac
       if test $LOCALE_FR_UTF8 != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20552,7 +23176,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_null_arg2=yes
 else
   gl_cv_func_mbrtowc_null_arg2=no
@@ -20574,7 +23199,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_null_arg2" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
 printf %s "checking whether mbrtowc has a correct return value... " >&6; }
-if ${gl_cv_func_mbrtowc_retval+:} false; then :
+if test ${gl_cv_func_mbrtowc_retval+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20586,7 +23212,8 @@ else
       esac
       if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
          || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20687,7 +23314,8 @@ int main ()
   return (found_some_locale ? result : 77);
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_retval=yes
 else
   if test $? != 77; then
@@ -20710,7 +23338,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_retval" >&6; }
 
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc returns 0 when parsing a NUL character" >&5
 printf %s "checking whether mbrtowc returns 0 when parsing a NUL character... " >&6; }
-if ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
+if test ${gl_cv_func_mbrtowc_nul_retval+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20721,7 +23350,8 @@ else
         *)             gl_cv_func_mbrtowc_nul_retval="guessing yes" ;;
       esac
       if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20752,7 +23382,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_nul_retval=yes
 else
   gl_cv_func_mbrtowc_nul_retval=no
 { 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; }
 
+
+
+     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works on empty input" >&5
+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
+
+                  case "$host_os" in
+                     # Guess no on AIX and glibc systems.
+        aix* | *-gnu*)
+                    gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+        *)          gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+      esac
+      if test "$cross_compiling" = yes
+then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+           #include <wchar.h>
+           static wchar_t wc;
+           static mbstate_t mbs;
+           int
+           main (void)
+           {
+             return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2;
+           }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_mbrtowc_empty_input=yes
+else
+  gl_cv_func_mbrtowc_empty_input=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_mbrtowc_empty_input" >&5
+printf "%s\n" "$gl_cv_func_mbrtowc_empty_input" >&6; }
+
+
+  { 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_C_locale_sans_EILSEQ+y}
+then :
+  printf %s "(cached) " >&6
+else
+
+               gl_cv_C_locale_sans_EILSEQ="guessing no"
+
+     if test "$cross_compiling" = yes
+then :
+  :
+else
+  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 1;
+            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 1;
+              }
+            return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_C_locale_sans_EILSEQ=yes
+else
+  gl_cv_C_locale_sans_EILSEQ=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_C_locale_sans_EILSEQ" >&5
+printf "%s\n" "$gl_cv_C_locale_sans_EILSEQ" >&6; }
+
       case "$gl_cv_func_mbrtowc_null_arg1" in
         *yes) ;;
         *)
@@ -20799,6 +23533,22 @@ printf "%s\n" "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
            REPLACE_MBRTOWC=1
            ;;
       esac
+      case "$gl_cv_func_mbrtowc_empty_input" in
+        *yes) ;;
+        *)
+printf "%s\n" "#define MBRTOWC_EMPTY_INPUT_BUG 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case $gl_cv_C_locale_sans_EILSEQ in
+        *yes) ;;
+        *)
+printf "%s\n" "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h
+
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
     fi
   fi
 
@@ -20864,7 +23614,8 @@ printf "%s\n" "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
 
      { 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 ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+if test ${gl_cv_func_mbrtowc_incomplete_state+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20875,7 +23626,8 @@ else
         *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
       esac
       if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20907,7 +23659,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_incomplete_state=yes
 else
   gl_cv_func_mbrtowc_incomplete_state=no
@@ -20927,7 +23680,8 @@ 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 ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+if test ${gl_cv_func_mbrtowc_sanitycheck+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -20938,7 +23692,8 @@ else
         *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
       esac
       if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -20974,7 +23729,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_sanitycheck=yes
 else
   gl_cv_func_mbrtowc_sanitycheck=no
@@ -21017,7 +23773,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+if test "x$ac_cv_have_decl_mbsinit" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -21110,7 +23867,8 @@ printf "%s\n" "#define GNULIB_TEST_MBSLEN 1" >>confdefs.h
 
      { 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 ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+if test ${gl_cv_func_mbrtowc_incomplete_state+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -21121,7 +23879,8 @@ else
         *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
       esac
       if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21153,7 +23912,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_incomplete_state=yes
 else
   gl_cv_func_mbrtowc_incomplete_state=no
@@ -21173,7 +23933,8 @@ 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 ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+if test ${gl_cv_func_mbrtowc_sanitycheck+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -21184,7 +23945,8 @@ else
         *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
       esac
       if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21220,7 +23982,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_sanitycheck=yes
 else
   gl_cv_func_mbrtowc_sanitycheck=no
@@ -21263,7 +24026,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then :
+if test "x$ac_cv_have_decl_mbsrtowcs" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -21288,7 +24052,8 @@ _ACEOF
 
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
 printf %s "checking whether mbsrtowcs works... " >&6; }
-if ${gl_cv_func_mbsrtowcs_works+:} false; then :
+if test ${gl_cv_func_mbsrtowcs_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -21299,7 +24064,8 @@ else
         *)                         gl_cv_func_mbsrtowcs_works="guessing yes" ;;
       esac
       if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21378,7 +24144,8 @@ int main ()
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbsrtowcs_works=yes
 else
   gl_cv_func_mbsrtowcs_works=no
@@ -21511,14 +24278,14 @@ printf "%s\n" "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
 
   for ac_header in bp-sym.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
-if test "x$ac_cv_header_bp_sym_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_BP_SYM_H 1
 _ACEOF
 
 fi
-
 done
 
 
@@ -21545,12 +24312,14 @@ printf "%s\n" "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
   if test $ac_cv_func_mkstemp = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mkstemp" >&5
 printf %s "checking for working mkstemp... " >&6; }
-if ${gl_cv_func_working_mkstemp+:} false; then :
+if test ${gl_cv_func_working_mkstemp+y}
+then :
   printf %s "(cached) " >&6
 else
 
         mkdir conftest.mkstemp
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                      # Guess yes on glibc systems.
              *-gnu*) gl_cv_func_working_mkstemp="guessing yes" ;;
@@ -21563,7 +24332,7 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 int result = 0;
               int i;
@@ -21596,7 +24365,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_working_mkstemp=yes
 else
   gl_cv_func_working_mkstemp=no
@@ -21655,6 +24425,8 @@ printf "%s\n" "#define GNULIB_TEST_MKSTEMP 1" >>confdefs.h
 
 
 
+
+
   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.
@@ -21663,10 +24435,12 @@ printf "%s\n" "#define GNULIB_TEST_MKSTEMP 1" >>confdefs.h
   fi
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
 printf %s "checking for working mktime... " >&6; }
-if ${gl_cv_func_working_mktime+:} false; then :
+if test ${gl_cv_func_working_mktime+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   gl_cv_func_working_mktime=no
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -21815,7 +24589,6 @@ main ()
   time_t t, delta;
   int i, j;
   int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
-  int time_t_signed = ! ((time_t) 0 < (time_t) -1);
 
 #if HAVE_DECL_ALARM
   /* This test makes some buggy mktime implementations loop.
@@ -21825,11 +24598,11 @@ main ()
   alarm (60);
 #endif
 
-  time_t_max = (! time_t_signed
+  time_t_max = (! TIME_T_IS_SIGNED
                 ? (time_t) -1
                 : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
                    * 2 + 1));
-  time_t_min = (! time_t_signed
+  time_t_min = (! TIME_T_IS_SIGNED
                 ? (time_t) 0
                 : time_t_signed_magnitude
                 ? ~ (time_t) 0
@@ -21869,7 +24642,8 @@ main ()
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_working_mktime=yes
 else
   gl_cv_func_working_mktime=no
@@ -21919,15 +24693,34 @@ printf "%s\n" "#define GNULIB_TEST_MKTIME 1" >>confdefs.h
 
 
 
-  if test $ac_cv_func__set_invalid_parameter_handler = yes; then
-    HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+  if test $REPLACE_MKTIME = 0; then
+        ac_fn_c_check_func "$LINENO" "__mktime_internal" "ac_cv_func___mktime_internal"
+if test "x$ac_cv_func___mktime_internal" = xyes
+then :
 
-printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+printf "%s\n" "#define mktime_internal __mktime_internal" >>confdefs.h
+
+
+else
+                REPLACE_MKTIME=1
+
+fi
 
-  else
-    HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
   fi
 
+  if test $REPLACE_MKTIME = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
+
+    :
+  fi
 
   if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
@@ -21942,8 +24735,6 @@ printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
 
   fi
 
-
-
   if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
 
 
@@ -21965,10 +24756,12 @@ printf "%s\n" "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
     # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
 printf %s "checking whether YESEXPR works... " >&6; }
-if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
+if test ${gl_cv_func_nl_langinfo_yesexpr_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
 
          case "$host_os" in
                    # Guess no on irix systems.
@@ -21983,7 +24776,7 @@ else
 #include <langinfo.h>
 
 int
-main ()
+main (void)
 {
 return !*nl_langinfo(YESEXPR);
 
@@ -21991,7 +24784,8 @@ return !*nl_langinfo(YESEXPR);
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_nl_langinfo_yesexpr_works=yes
 else
   gl_cv_func_nl_langinfo_yesexpr_works=no
@@ -22063,7 +24857,8 @@ printf "%s\n" "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
 printf %s "checking whether open recognizes a trailing slash... " >&6; }
-if ${gl_cv_func_open_slash+:} false; then :
+if test ${gl_cv_func_open_slash+y}
+then :
   printf %s "(cached) " >&6
 else
   # Assume that if we have lstat, we can also check symlinks.
@@ -22071,7 +24866,8 @@ else
             touch conftest.tmp
             ln -s conftest.tmp conftest.lnk
           fi
-          if test "$cross_compiling" = yes; then :
+          if test "$cross_compiling" = yes
+then :
 
              case "$host_os" in
                freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
@@ -22100,7 +24896,8 @@ int main ()
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_open_slash=yes
 else
   gl_cv_func_open_slash=no
@@ -22163,7 +24960,8 @@ printf "%s\n" "#define GNULIB_TEST_OPEN 1" >>confdefs.h
 
   ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
 "
-if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -22175,7 +24973,8 @@ _ACEOF
 
   ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
 "
-if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -22206,7 +25005,8 @@ _ACEOF
   for ac_func in raise
 do :
   ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
-if test "x$ac_cv_func_raise" = xyes; then :
+if test "x$ac_cv_func_raise" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_RAISE 1
 _ACEOF
@@ -22226,7 +25026,8 @@ done
 
   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 :
+if test "x$ac_cv_func_sigprocmask" = xyes
+then :
   gl_cv_func_sigprocmask=1
 fi
 
@@ -22272,12 +25073,61 @@ printf "%s\n" "#define GNULIB_TEST_RAISE 1" >>confdefs.h
 
 
 
+
+  for ac_func in rawmemchr
+do :
+  ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr"
+if test "x$ac_cv_func_rawmemchr" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_RAWMEMCHR 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_rawmemchr = no; then
+    HAVE_RAWMEMCHR=0
+  fi
+
+  if test $HAVE_RAWMEMCHR = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
+
+    :
+  fi
+
+
+
+
+
+          GNULIB_RAWMEMCHR=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
+
+
+
+
+
+
   if test $ac_cv_func_readlink = no; then
     HAVE_READLINK=0
   else
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5
 printf %s "checking whether readlink signature is correct... " >&6; }
-if ${gl_cv_decl_readlink_works+:} false; then :
+if test ${gl_cv_decl_readlink_works+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22286,14 +25136,15 @@ else
       /* Cause compilation failure if original declaration has wrong type.  */
       ssize_t readlink (const char *, char *, size_t);
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_decl_readlink_works=yes
 else
   gl_cv_decl_readlink_works=no
 printf "%s\n" "$gl_cv_decl_readlink_works" >&6; }
             { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5
 printf %s "checking whether readlink handles trailing slash correctly... " >&6; }
-if ${gl_cv_func_readlink_works+:} false; then :
+if test ${gl_cv_func_readlink_works+y}
+then :
   printf %s "(cached) " >&6
 else
   # 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; then :
+       if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                     # Guess yes on glibc systems.
             *-gnu*) gl_cv_func_readlink_works="guessing yes" ;;
@@ -22324,7 +25177,7 @@ else
 #include <unistd.h>
 
 int
-main ()
+main (void)
 {
 char buf[20];
       return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
@@ -22332,7 +25185,8 @@ char buf[20];
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_readlink_works=yes
 else
   gl_cv_func_readlink_works=no
@@ -22393,7 +25247,8 @@ printf "%s\n" "#define GNULIB_TEST_READLINK 1" >>confdefs.h
 
 
 # Check whether --with-included-regex was given.
-if test "${with_included_regex+set}" = set; then :
+if test ${with_included_regex+y}
+then :
   withval=$with_included_regex;
 fi
 
     # If cross compiling, assume the test would fail and use the included
     # regex.c.
 
+
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
 printf %s "checking for working re_compile_pattern... " >&6; }
-if ${gl_cv_func_re_compile_pattern_working+:} false; then :
+if test ${gl_cv_func_re_compile_pattern_working+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
          gl_cv_func_re_compile_pattern_working=no
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22422,13 +25280,23 @@ else
             #include <locale.h>
             #include <limits.h>
             #include <string.h>
-            #if HAVE_DECL_ALARM
-            # include <unistd.h>
+
+            #if defined M_CHECK_ACTION || HAVE_DECL_ALARM
             # include <signal.h>
+            # include <unistd.h>
+            #endif
+
+            #if HAVE_MALLOC_H
+            # include <malloc.h>
+            #endif
+
+            #ifdef M_CHECK_ACTION
+            /* Exit with distinguishable exit code.  */
+            static void sigabrt_no_core (int sig) { raise (SIGTERM); }
             #endif
 
 int
-main ()
+main (void)
 {
 int result = 0;
             static struct re_pattern_buffer regex;
@@ -22437,11 +25305,18 @@ int result = 0;
             const char *s;
             struct re_registers regs;
 
+            /* Some builds of glibc go into an infinite loop on this
+               test.  Use alarm to force death, and mallopt to avoid
+               malloc recursion in diagnosing the corrupted heap. */
 #if HAVE_DECL_ALARM
-            /* Some builds of glibc go into an infinite loop on this test.  */
             signal (SIGALRM, SIG_DFL);
             alarm (2);
 #endif
+#ifdef M_CHECK_ACTION
+            signal (SIGABRT, sigabrt_no_core);
+            mallopt (M_CHECK_ACTION, 2);
+#endif
+
             if (setlocale (LC_ALL, "en_US.UTF-8"))
               {
                 {
@@ -22463,6 +25338,7 @@ int result = 0;
                                       0, sizeof data - 1, &regs)
                            != -1)
                     result |= 1;
+                  regfree (&regex);
                 }
 
                 {
@@ -22472,17 +25348,29 @@ int result = 0;
                      */
                   static char const pat[] = "[^x]x";
                   static char const data[] =
-                    "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80"
-                    "\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
+                    /* <U1000><U103B><U103D><U1014><U103A><U102F><U1015><U103A> */
+                    "\xe1\x80\x80"
+                    "\xe1\x80\xbb"
+                    "\xe1\x80\xbd"
+                    "\xe1\x80\x94"
+                    "\xe1\x80\xba"
+                    "\xe1\x80\xaf"
+                    "\xe1\x80\x95"
+                    "\xe1\x80\xba"
+                    "x";
                   re_set_syntax (0);
                   memset (&regex, 0, sizeof regex);
                   s = re_compile_pattern (pat, sizeof pat - 1, &regex);
                   if (s)
                     result |= 1;
-                  else if (re_search (&regex, data, sizeof data - 1,
-                                      0, sizeof data - 1, 0)
-                           != 21)
-                    result |= 1;
+                  else
+                    {
+                      i = re_search (&regex, data, sizeof data - 1,
+                                     0, sizeof data - 1, 0);
+                      if (i != 0 && i != 21)
+                        result |= 1;
+                    }
+                  regfree (&regex);
                 }
 
                 if (! setlocale (LC_ALL, "C"))
@@ -22587,7 +25475,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_re_compile_pattern_working=yes
 else
   gl_cv_func_re_compile_pattern_working=no
@@ -22679,22 +25568,24 @@ printf "%s\n" "#define regfree rpl_regfree" >>confdefs.h
 
 
 
+
   for ac_header in libintl.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
-if test "x$ac_cv_header_libintl_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBINTL_H 1
 _ACEOF
 
 fi
-
 done
 
 
   ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
 "
-if test "x$ac_cv_have_decl_isblank" = xyes; then :
+if test "x$ac_cv_have_decl_isblank" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -22730,7 +25621,8 @@ _ACEOF
   for ac_func in __secure_getenv
 do :
   ac_fn_c_check_func "$LINENO" "__secure_getenv" "ac_cv_func___secure_getenv"
-if test "x$ac_cv_func___secure_getenv" = xyes; then :
+if test "x$ac_cv_func___secure_getenv" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE___SECURE_GETENV 1
 _ACEOF
@@ -22742,7 +25634,8 @@ done
     for ac_func in issetugid
 do :
   ac_fn_c_check_func "$LINENO" "issetugid" "ac_cv_func_issetugid"
-if test "x$ac_cv_func_issetugid" = xyes; then :
+if test "x$ac_cv_func_issetugid" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ISSETUGID 1
 _ACEOF
@@ -22752,6 +25645,7 @@ done
 
   fi
 
+
   fi
 
 
@@ -22770,11 +25664,111 @@ printf "%s\n" "#define GNULIB_TEST_SECURE_GETENV 1" >>confdefs.h
 
 
 
+     if test $ac_cv_func_setenv = no; then
+    HAVE_SETENV=0
+  else
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+printf %s "checking whether setenv validates arguments... " >&6; }
+if test ${gl_cv_func_setenv_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_setenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       #include <string.h>
+
+int
+main (void)
+{
+
+       int result = 0;
+       {
+         if (setenv ("", "", 0) != -1)
+           result |= 1;
+         else if (errno != EINVAL)
+           result |= 2;
+       }
+       {
+         if (setenv ("a", "=", 1) != 0)
+           result |= 4;
+         else if (strcmp (getenv ("a"), "=") != 0)
+           result |= 8;
+       }
+       return result;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_setenv_works=yes
+else
+  gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5
+printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
+    case "$gl_cv_func_setenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_SETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_SETENV=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_SETENV 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; then :
+if test "x$ac_cv_member_struct_sigaction_sa_sigaction" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_SIGACTION_SA_SIGACTION 1
@@ -22811,7 +25805,8 @@ fi
 #include <signal.h>
 
 "
-if test "x$ac_cv_type_siginfo_t" = xyes; then :
+if test "x$ac_cv_type_siginfo_t" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_SIGINFO_T 1
@@ -22856,40 +25851,45 @@ printf "%s\n" "#define GNULIB_TEST_SIGACTION 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <signal.h>" >&5
 printf %s "checking absolute name of <signal.h>... " >&6; }
-if ${gl_cv_next_signal_h+:} false; then :
+if test ${gl_cv_next_signal_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <signal.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'signal.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_next_signal_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'signal.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_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'"'
 
 
 fi
@@ -22917,7 +25917,8 @@ printf "%s\n" "$gl_cv_next_signal_h" >&6; }
 #include <signal.h>
 
 "
-if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then :
+if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes
+then :
 
 else
   HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
@@ -22933,7 +25934,8 @@ fi
 #include <signal.h>
 
 "
-if test "x$ac_cv_type_sighandler_t" = xyes; then :
+if test "x$ac_cv_type_sighandler_t" = xyes
+then :
 
 else
   HAVE_SIGHANDLER_T=0
@@ -22945,7 +25947,8 @@ fi
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -22953,7 +25956,7 @@ else
 #include <signal.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -22961,7 +25964,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -22971,7 +25975,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -22986,7 +25991,8 @@ fi
 
   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 :
+if test "x$ac_cv_func_sigprocmask" = xyes
+then :
   gl_cv_func_sigprocmask=1
 fi
 
@@ -23026,19 +26032,20 @@ printf "%s\n" "#define GNULIB_TEST_SIGPROCMASK 1" >>confdefs.h
 
   for ac_header in stdint.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = xyes; then :
+  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 :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDINT_H 1
 _ACEOF
 
 fi
-
 done
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
 printf %s "checking for SIZE_MAX... " >&6; }
-if ${gl_cv_size_max+:} false; then :
+if test ${gl_cv_size_max+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -23056,20 +26063,23 @@ Found it
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Found it" >/dev/null 2>&1; then :
+  $EGREP "Found it" >/dev/null 2>&1
+then :
   gl_cv_size_max=yes
 fi
 rm -rf conftest*
 
     if test -z "$gl_cv_size_max"; then
                         if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1"        "#include <stddef.h>
-#include <limits.h>"; then :
+#include <limits.h>"
+then :
 
 else
   size_t_bits_minus_1=
 fi
 
-      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"; then :
+      if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"
+then :
 
 else
   fits_in_uint=
                  extern unsigned long foo;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   fits_in_uint=0
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -23121,14 +26132,15 @@ _ACEOF
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
 printf %s "checking for ssize_t... " >&6; }
-if ${gt_cv_ssize_t+:} false; then :
+if test ${gt_cv_ssize_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 int
-main ()
+main (void)
 {
 int x = sizeof (ssize_t *) + sizeof (ssize_t);
             return !x;
@@ -23136,7 +26148,8 @@ int x = sizeof (ssize_t *) + sizeof (ssize_t);
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gt_cv_ssize_t=yes
 else
   gt_cv_ssize_t=no
@@ -23156,10 +26169,12 @@ printf "%s\n" "#define ssize_t int" >>confdefs.h
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
 printf %s "checking whether stat handles trailing slashes on directories... " >&6; }
-if ${gl_cv_func_stat_dir_slash+:} false; then :
+if test ${gl_cv_func_stat_dir_slash+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case $host_os in
             mingw*) gl_cv_func_stat_dir_slash="guessing no";;
             *) gl_cv_func_stat_dir_slash="guessing yes";;
@@ -23170,14 +26185,15 @@ else
 #include <sys/stat.h>
 
 int
-main ()
+main (void)
 {
 struct stat st; return stat (".", &st) != stat ("./", &st);
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_stat_dir_slash=yes
 else
   gl_cv_func_stat_dir_slash=no
@@ -23191,7 +26207,8 @@ fi
 printf "%s\n" "$gl_cv_func_stat_dir_slash" >&6; }
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5
 printf %s "checking whether stat handles trailing slashes on files... " >&6; }
-if ${gl_cv_func_stat_file_slash+:} false; then :
+if test ${gl_cv_func_stat_file_slash+y}
+then :
   printf %s "(cached) " >&6
 else
   touch conftest.tmp
@@ -23199,7 +26216,8 @@ else
        if test $ac_cv_func_lstat = yes; then
          ln -s conftest.tmp conftest.lnk
        fi
-       if test "$cross_compiling" = yes; then :
+       if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                     # Guess yes on glibc systems.
             *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;;
@@ -23213,7 +26231,7 @@ else
 #include <sys/stat.h>
 
 int
-main ()
+main (void)
 {
 int result = 0;
       struct stat st;
@@ -23229,7 +26247,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_stat_file_slash=yes
 else
   gl_cv_func_stat_file_slash=no
@@ -23290,7 +26309,8 @@ printf "%s\n" "#define GNULIB_TEST_STAT 1" >>confdefs.h
   ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h>
      #include <sys/stat.h>
 "
-if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
@@ -23298,7 +26318,8 @@ _ACEOF
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct stat.st_atim is of type struct timespec" >&5
 printf %s "checking whether struct stat.st_atim is of type struct timespec... " >&6; }
-if ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then :
+if test ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23314,7 +26335,7 @@ else
             struct stat st;
 
 int
-main ()
+main (void)
 {
 
             st.st_atim = ts;
@@ -23323,7 +26344,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
 else
   ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
@@ -23341,7 +26363,8 @@ else
   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; then :
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
@@ -23352,7 +26375,8 @@ else
   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; then :
+if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
@@ -23363,7 +26387,8 @@ else
   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; then :
+if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
@@ -23385,7 +26410,8 @@ fi
   ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include <sys/types.h>
      #include <sys/stat.h>
 "
-if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then :
+if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
@@ -23396,7 +26422,8 @@ else
   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; then :
+if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
@@ -23407,7 +26434,8 @@ else
   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; then :
+if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
@@ -23426,7 +26454,8 @@ fi
   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 ${gl_cv_func_va_copy+:} false; then :
+  if test ${gl_cv_func_va_copy+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -23434,7 +26463,7 @@ else
 /* end confdefs.h.  */
 #include <stdarg.h>
 int
-main ()
+main (void)
 {
 
 #ifndef va_copy
@@ -23445,7 +26474,8 @@ void (*func) (va_list, va_list) = va_copy;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_va_copy=yes
 else
   gl_cv_func_va_copy=no
@@ -23464,7 +26494,8 @@ 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; then :
+  $EGREP "vaccine" >/dev/null 2>&1
+then :
   gl_aixcc=yes
 else
   gl_aixcc=no
@@ -23486,40 +26517,45 @@ rm -rf conftest*
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5
 printf %s "checking absolute name of <stdarg.h>... " >&6; }
-if ${gl_cv_next_stdarg_h+:} false; then :
+if test ${gl_cv_next_stdarg_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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 'stdarg.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_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdarg.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_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'"'
 
 
 fi
@@ -23548,7 +26584,8 @@ printf "%s\n" "$gl_cv_next_stdarg_h" >&6; }
 
   saved_as_echo_n="$as_echo_n"
   as_echo_n=':'
-  if ${gl_cv_func___va_copy+:} false; then :
+  if test ${gl_cv_func___va_copy+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -23556,7 +26593,7 @@ else
 /* end confdefs.h.  */
 #include <stdarg.h>
 int
-main ()
+main (void)
 {
 
 #ifndef __va_copy
@@ -23567,7 +26604,8 @@ error, bail out
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func___va_copy=yes
 else
   gl_cv_func___va_copy=no
 
 
   STDDEF_H=
+  ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h>
+
+"
+if test "x$ac_cv_type_max_align_t" = xyes
+then :
+
+else
+  HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h
+fi
+
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
     STDDEF_H=stddef.h
   fi
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5
 printf %s "checking whether NULL can be used in arbitrary expressions... " >&6; }
-if ${gl_cv_decl_null_works+:} false; then :
+if test ${gl_cv_decl_null_works+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23646,14 +26695,15 @@ else
       int test[2 * (sizeof NULL == sizeof (void *)) -1];
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_decl_null_works=yes
 else
   gl_cv_decl_null_works=no
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
 printf %s "checking absolute name of <stddef.h>... " >&6; }
-if ${gl_cv_next_stddef_h+:} false; then :
+if test ${gl_cv_next_stddef_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'stddef.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stddef.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stddef_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stddef_h
+           gl_cv_next_stddef_h='"'$gl_header'"'
 
 
 fi
@@ -23756,45 +26811,52 @@ printf "%s\n" "$gl_cv_next_stddef_h" >&6; }
 
 
 
+
+
      if test $gl_cv_have_include_next = yes; then
        gl_cv_next_stdio_h='<'stdio.h'>'
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
 printf %s "checking absolute name of <stdio.h>... " >&6; }
-if ${gl_cv_next_stdio_h+:} false; then :
+if test ${gl_cv_next_stdio_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdio.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'stdio.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdio.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdio_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdio_h
+           gl_cv_next_stdio_h='"'$gl_header'"'
 
 
 fi
@@ -23816,6 +26878,50 @@ printf "%s\n" "$gl_cv_next_stdio_h" >&6; }
 
 
 
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which flavor of printf attribute matches inttypes macros" >&5
+printf %s "checking which flavor of printf attribute matches inttypes macros... " >&6; }
+if test ${gl_cv_func_printf_attribute_flavor+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #define __STDC_FORMAT_MACROS 1
+       #include <stdio.h>
+       #include <inttypes.h>
+       /* For non-mingw systems, compilation will trivially succeed.
+          For mingw, compilation will succeed for older mingw (system
+          printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */
+       #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \
+         (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+       extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1];
+       #endif
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_func_printf_attribute_flavor=system
+else
+  gl_cv_func_printf_attribute_flavor=gnu
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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; }
+  if test "$gl_cv_func_printf_attribute_flavor" = gnu; then
+
+printf "%s\n" "#define GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU 1" >>confdefs.h
+
+  fi
+
       GNULIB_FSCANF=1
 
 
@@ -23857,7 +26963,8 @@ _ACEOF
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23865,7 +26972,7 @@ else
 #include <stdio.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -23873,7 +26980,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -23883,7 +26991,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
 printf %s "checking absolute name of <stdlib.h>... " >&6; }
-if ${gl_cv_next_stdlib_h+:} false; then :
+if test ${gl_cv_next_stdlib_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'stdlib.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'stdlib.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_stdlib_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_stdlib_h
+           gl_cv_next_stdlib_h='"'$gl_header'"'
 
 
 fi
@@ -23968,7 +27082,8 @@ printf "%s\n" "$gl_cv_next_stdlib_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -23982,7 +27097,7 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -23990,7 +27105,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -24000,7 +27116,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -24016,7 +27133,8 @@ fi
   for ac_func in strcasecmp
 do :
   ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
-if test "x$ac_cv_func_strcasecmp" = xyes; then :
+if test "x$ac_cv_func_strcasecmp" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STRCASECMP 1
 _ACEOF
@@ -24033,7 +27151,8 @@ done
   for ac_func in strncasecmp
 do :
   ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
-if test "x$ac_cv_func_strncasecmp" = xyes; then :
+if test "x$ac_cv_func_strncasecmp" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STRNCASECMP 1
 _ACEOF
@@ -24047,7 +27166,8 @@ done
     HAVE_STRNCASECMP=0
   fi
   ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strncasecmp" = xyes; then :
+if test "x$ac_cv_have_decl_strncasecmp" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -24097,13 +27217,17 @@ _ACEOF
 
 
 
+
+
   if test "$ERRNO_H:$REPLACE_STRERROR_0" = :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 ${gl_cv_func_working_strerror+:} false; then :
+if test ${gl_cv_func_working_strerror+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                    # Guess yes on glibc systems.
            *-gnu*) gl_cv_func_working_strerror="guessing yes" ;;
@@ -24117,14 +27241,15 @@ else
 #include <string.h>
 
 int
-main ()
+main (void)
 {
 if (!*strerror (-2)) return 1;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_working_strerror=yes
 else
   gl_cv_func_working_strerror=no
@@ -24144,6 +27269,10 @@ printf "%s\n" "$gl_cv_func_working_strerror" >&6; }
         ;;
     esac
 
+                  case "$gl_cv_func_strerror_r_works" in
+        *no) REPLACE_STRERROR=1 ;;
+      esac
+
   else
             REPLACE_STRERROR=1
   fi
@@ -24202,14 +27331,14 @@ printf "%s\n" "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
   if test $ac_cv_header_sys_socket_h != yes; then
                     for ac_header in winsock2.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
-if test "x$ac_cv_header_winsock2_h" = xyes; then :
+  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 :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WINSOCK2_H 1
 _ACEOF
 
 fi
-
 done
 
   fi
@@ -24262,10 +27391,12 @@ printf "%s\n" "#define my_strftime nstrftime" >>confdefs.h
     # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5
 printf %s "checking for working strndup... " >&6; }
-if ${gl_cv_func_strndup_works+:} false; then :
+if test ${gl_cv_func_strndup_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
 
           case $host_os in
             aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
@@ -24279,7 +27410,7 @@ else
          #include <string.h>
                            #include <stdlib.h>
 int
-main ()
+main (void)
 {
 
 #if !HAVE_DECL_STRNDUP
@@ -24289,16 +27420,20 @@ main ()
   #endif
   char *strndup (const char *, size_t);
 #endif
+  int result;
   char *s;
   s = strndup ("some longer string", 15);
   free (s);
   s = strndup ("shorter string", 13);
-  return s[13] != '\0';
+  result = s[13] != '\0';
+  free (s);
+  return result;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_strndup_works=yes
 else
   gl_cv_func_strndup_works=no
@@ -24356,10 +27491,12 @@ printf "%s\n" "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h
 
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5
 printf %s "checking for working strnlen... " >&6; }
-if ${ac_cv_func_strnlen_working+:} false; then :
+if test ${ac_cv_func_strnlen_working+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   # Guess no on AIX systems, yes otherwise.
                case "$host_os" in
                  aix*) ac_cv_func_strnlen_working=no;;
@@ -24370,7 +27507,7 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 
 #define S "foobar"
@@ -24392,7 +27529,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_strnlen_working=yes
 else
   ac_cv_func_strnlen_working=no
@@ -24486,7 +27624,8 @@ printf "%s\n" "#define GNULIB_TEST_STRPTIME 1" >>confdefs.h
     for ac_func in strtoull
 do :
   ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
-if test "x$ac_cv_func_strtoull" = xyes; then :
+if test "x$ac_cv_func_strtoull" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STRTOULL 1
 _ACEOF
@@ -24534,11 +27673,16 @@ printf "%s\n" "#define GNULIB_TEST_STRTOULL 1" >>confdefs.h
 
 
 
-  if test "$ac_cv_have_decl_strtoumax" != yes; then
+  if test "$ac_cv_have_decl_strtoumax" = yes; then
+    if test "$ac_cv_func_strtoumax" != yes; then
+      # HP-UX 11.11 has "#define strtoimax(...) ..." but no function.
+      REPLACE_STRTOUMAX=1
+    fi
+  else
     HAVE_DECL_STRTOUMAX=0
   fi
 
-  if test $ac_cv_func_strtoumax = no; then
+  if test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; then
 
 
 
@@ -24551,7 +27695,8 @@ printf "%s\n" "#define GNULIB_TEST_STRTOULL 1" >>confdefs.h
 
 
   ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strtoull" = xyes; then :
+if test "x$ac_cv_have_decl_strtoull" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -24593,43 +27738,48 @@ _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
 printf %s "checking absolute name of <sys/stat.h>... " >&6; }
-if ${gl_cv_next_sys_stat_h+:} false; then :
+if test ${gl_cv_next_sys_stat_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_sys_stat_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/stat.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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/stat.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_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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/stat.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_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'"'
           else
                gl_cv_next_sys_stat_h='<'sys/stat.h'>'
              fi
@@ -24669,7 +27819,8 @@ printf "%s\n" "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h
       ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
      #include <sys/stat.h>
 "
-if test "x$ac_cv_type_nlink_t" = xyes; then :
+if test "x$ac_cv_type_nlink_t" = xyes
+then :
 
 else
 
@@ -24683,7 +27834,8 @@ fi
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -24691,7 +27843,7 @@ else
 #include <sys/stat.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -24699,7 +27851,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -24709,7 +27862,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/wait.h>" >&5
 printf %s "checking absolute name of <sys/wait.h>... " >&6; }
-if ${gl_cv_next_sys_wait_h+:} false; then :
+if test ${gl_cv_next_sys_wait_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_sys_wait_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/wait.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                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/wait.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_next_sys_wait_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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/wait.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_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'"'
           else
                gl_cv_next_sys_wait_h='<'sys/wait.h'>'
              fi
@@ -24811,14 +27970,15 @@ printf "%s\n" "$gl_cv_next_sys_wait_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/wait.h>
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -24826,7 +27986,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -24836,7 +27997,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -24863,7 +28025,8 @@ fi
 
       ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "#include <time.h>
 "
-if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
+if test "x$ac_cv_have_decl_localtime_r" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -24882,14 +28045,15 @@ _ACEOF
     HAVE_LOCALTIME_R=1
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether localtime_r is compatible with its POSIX signature" >&5
 printf %s "checking whether localtime_r is compatible with its POSIX signature... " >&6; }
-if ${gl_cv_time_r_posix+:} false; then :
+if test ${gl_cv_time_r_posix+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <time.h>
 int
-main ()
+main (void)
 {
 /* We don't need to append 'restrict's to the argument types,
                  even though the POSIX signature has the 'restrict's,
@@ -24904,7 +28068,8 @@ main ()
 }
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_time_r_posix=yes
 else
   gl_cv_time_r_posix=no
@@ -24953,6 +28118,99 @@ printf "%s\n" "#define GNULIB_TEST_TIME_R 1" >>confdefs.h
 
 
 
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "timezone_t" "ac_cv_type_timezone_t" "#include <time.h>
+"
+if test "x$ac_cv_type_timezone_t" = xyes
+then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_TIMEZONE_T 1
+_ACEOF
+
+
+fi
+
+  if test "$ac_cv_type_timezone_t" = yes; then
+    HAVE_TIMEZONE_T=1
+  fi
+
+  if test "$HAVE_TIMEZONE_T" = 0; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS time_rz.$ac_objext"
+
+  fi
+
+
+
+
+
+          GNULIB_TIME_RZ=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_TIME_RZ 1" >>confdefs.h
+
+
+
+
+
+
+  REPLACE_TIMEGM=0
+
+  if test $ac_cv_func_timegm = yes; then
+    if test $gl_cv_func_working_mktime = no; then
+      # Assume that timegm is buggy if mktime is.
+      REPLACE_TIMEGM=1
+    fi
+  else
+    HAVE_TIMEGM=0
+  fi
+
+  if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS timegm.$ac_objext"
+
+
+  :
+
+  fi
+
+
+
+
+
+          GNULIB_TIMEGM=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_TIMEGM 1" >>confdefs.h
+
+
+
   :
 
 
@@ -24971,43 +28229,48 @@ printf "%s\n" "#define GNULIB_TEST_TIME_R 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
 printf %s "checking absolute name of <unistd.h>... " >&6; }
-if ${gl_cv_next_unistd_h+:} false; then :
+if test ${gl_cv_next_unistd_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_unistd_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <unistd.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'unistd.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'unistd.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_unistd_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_unistd_h
+           gl_cv_next_unistd_h='"'$gl_header'"'
           else
                gl_cv_next_unistd_h='<'unistd.h'>'
              fi
@@ -25047,7 +28310,8 @@ printf "%s\n" "$gl_cv_next_unistd_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25067,7 +28331,7 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -25075,7 +28339,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -25085,7 +28350,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -25106,7 +28372,7 @@ fi
             || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
                  && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
                       || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
-                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 2
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
                          }
                     }
                }
@@ -25205,7 +28471,7 @@ fi
             || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
                  && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
                       || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
-                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
                          }
                     }
                }
@@ -25232,7 +28498,7 @@ fi
             || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
                  && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
                       || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
-                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
                          }
                     }
                }
@@ -25259,7 +28525,7 @@ fi
             || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
                  && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
                       || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
-                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+                           && test $LIBUNISTRING_VERSION_SUBMINOR -lt 6
                          }
                     }
                }
@@ -25299,35 +28565,249 @@ printf "%s\n" "#define USE_UNLOCKED_IO 1" >>confdefs.h
 
 
 
+
+
+  if test $ac_cv_have_decl_unsetenv = no; then
+    HAVE_DECL_UNSETENV=0
+  fi
+  for ac_func in unsetenv
+do :
+  ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+  if test $ac_cv_func_unsetenv = no; then
+    HAVE_UNSETENV=0
+  else
+    HAVE_UNSETENV=1
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+printf %s "checking for unsetenv() return type... " >&6; }
+if test ${gt_cv_func_unsetenv_ret+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gt_cv_func_unsetenv_ret='int'
+else
+  gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5
+printf "%s\n" "$gt_cv_func_unsetenv_ret" >&6; }
+    if test $gt_cv_func_unsetenv_ret = 'void'; then
+
+printf "%s\n" "#define VOID_UNSETENV 1" >>confdefs.h
+
+      REPLACE_UNSETENV=1
+    fi
+
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+printf %s "checking whether unsetenv obeys POSIX... " >&6; }
+if test ${gl_cv_func_unsetenv_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+                 # Guess yes on glibc systems.
+         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
+                 # If we don't know, assume the worst.
+         *)      gl_cv_func_unsetenv_works="guessing no" ;;
+       esac
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+       #include <stdlib.h>
+       #include <errno.h>
+       extern char **environ;
+
+int
+main (void)
+{
+
+       char entry1[] = "a=1";
+       char entry2[] = "b=2";
+       char *env[] = { entry1, entry2, NULL };
+       if (putenv ((char *) "a=1")) return 1;
+       if (putenv (entry2)) return 2;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 3;
+       if (!unsetenv ("") || errno != EINVAL) return 4;
+       entry2[0] = 'b';
+       environ = env;
+       if (!getenv ("a")) return 5;
+       entry2[0] = 'a';
+       unsetenv ("a");
+       if (getenv ("a")) return 6;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_unsetenv_works=yes
+else
+  gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5
+printf "%s\n" "$gl_cv_func_unsetenv_works" >&6; }
+    case "$gl_cv_func_unsetenv_works" in
+      *yes) ;;
+      *)
+        REPLACE_UNSETENV=1
+        ;;
+    esac
+  fi
+
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+  gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+  fi
+
+
+
+
+
+          GNULIB_UNSETENV=1
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5
 printf %s "checking for variable-length arrays... " >&6; }
-if ${ac_cv_c_vararrays+:} false; then :
+if test ${ac_cv_c_vararrays+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#ifdef __STDC_NO_VLA__
+       defined
+       #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "defined" >/dev/null 2>&1
+then :
+  ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'
+else
+  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:
+                 http://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];
+                }
+
+                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 ()
+main (void)
 {
-static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_vararrays=yes
 else
   ac_cv_c_vararrays=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+rm -rf conftest*
+
+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_c_vararrays" = yes; then
 
 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
 
 
@@ -25392,7 +28872,8 @@ printf "%s\n" "#define REPLACE_VASNPRINTF 1" >>confdefs.h
 
 
   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 :
+if test "x$ac_cv_type_ptrdiff_t" = xyes
+then :
 
 else
 
@@ -25413,7 +28894,8 @@ fi
   for ac_func in vasprintf
 do :
   ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
-if test "x$ac_cv_func_vasprintf" = xyes; then :
+if test "x$ac_cv_func_vasprintf" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_VASPRINTF 1
 _ACEOF
@@ -25484,7 +28966,8 @@ printf "%s\n" "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
 
 
 # Check whether --with-packager was given.
-if test "${with_packager+set}" = set; then :
+if test ${with_packager+y}
+then :
   withval=$with_packager;       case $withval in
         yes|no) ;;
         *)
@@ -25499,7 +28982,8 @@ fi
 
 
 # Check whether --with-packager-version was given.
-if test "${with_packager_version+set}" = set; then :
+if test ${with_packager_version+y}
+then :
   withval=$with_packager_version;       case $withval in
         yes|no) ;;
         *)
@@ -25514,7 +28998,8 @@ fi
 
 
 # Check whether --with-packager-bug-reports was given.
-if test "${with_packager_bug_reports+set}" = set; then :
+if test ${with_packager_bug_reports+y}
+then :
   withval=$with_packager_bug_reports;       case $withval in
         yes|no) ;;
         *)
      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 ${gl_cv_next_wchar_h+:} false; then :
+if test ${gl_cv_next_wchar_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_wchar_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  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
+    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_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  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
@@ -25632,7 +29122,8 @@ printf "%s\n" "$gl_cv_next_wchar_h" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25650,7 +29141,7 @@ else
 #include <wchar.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -25658,7 +29149,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -25668,7 +29160,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -25694,7 +29187,8 @@ fi
 
      { 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 ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+if test ${gl_cv_func_mbrtowc_incomplete_state+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -25705,7 +29199,8 @@ else
         *)           gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
       esac
       if test $LOCALE_JA != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25737,7 +29232,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_incomplete_state=yes
 else
   gl_cv_func_mbrtowc_incomplete_state=no
@@ -25757,7 +29253,8 @@ 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 ${gl_cv_func_mbrtowc_sanitycheck+:} false; then :
+if test ${gl_cv_func_mbrtowc_sanitycheck+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -25768,7 +29265,8 @@ else
         *)          gl_cv_func_mbrtowc_sanitycheck="guessing yes" ;;
       esac
       if test $LOCALE_ZH_CN != none; then
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25804,7 +29302,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_mbrtowc_sanitycheck=yes
 else
   gl_cv_func_mbrtowc_sanitycheck=no
@@ -25847,7 +29346,8 @@ printf "%s\n" "$gl_cv_func_mbrtowc_sanitycheck" >&6; }
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+if test "x$ac_cv_have_decl_wcrtomb" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -25871,7 +29371,8 @@ _ACEOF
 
              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
 printf %s "checking whether wcrtomb return value is correct... " >&6; }
-if ${gl_cv_func_wcrtomb_retval+:} false; then :
+if test ${gl_cv_func_wcrtomb_retval+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -25882,7 +29383,8 @@ else
             *)                       gl_cv_func_wcrtomb_retval="guessing yes" ;;
           esac
           if test $LOCALE_FR != none || test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none || test $LOCALE_ZH_CN != none; then
-            if test "$cross_compiling" = yes; then :
+            if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -25924,7 +29426,8 @@ int main ()
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_wcrtomb_retval=yes
 else
   gl_cv_func_wcrtomb_retval=no
@@ -26009,43 +29512,48 @@ printf "%s\n" "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
      else
        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
 printf %s "checking absolute name of <wctype.h>... " >&6; }
-if ${gl_cv_next_wctype_h+:} false; then :
+if test ${gl_cv_next_wctype_h+y}
+then :
   printf %s "(cached) " >&6
 else
 
              if test $ac_cv_header_wctype_h = yes; then
 
 
-               cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <wctype.h>
-
 _ACEOF
-                                                                                                                        case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
+                case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
 
-               case "$host_os" in
-                 mingw*)
-                                                                                                                                     gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-                                             gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-
-               gl_header_literal_regex=`echo 'wctype.h' \
-                                        | sed -e "$gl_make_literal_regex_sed"`
-               gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
-                   s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
-                   s|^/[^/]|//&|
-                   p
-                   q
-                 }'
-                                                            gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
-                      sed -n "$gl_absolute_header_sed"`'"'
+  case "$host_os" in
+    mingw*)
+                                          gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+      gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo 'wctype.h' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+
+        gl_cv_absolute_wctype_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+  sed -n "$gl_absolute_header_sed"`
+
+           gl_header=$gl_cv_absolute_wctype_h
+           gl_cv_next_wctype_h='"'$gl_header'"'
           else
                gl_cv_next_wctype_h='<'wctype.h'>'
              fi
@@ -26073,11 +29581,13 @@ printf "%s\n" "$gl_cv_next_wctype_h" >&6; }
     if test $ac_cv_func_iswcntrl = yes; then
                   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
 printf %s "checking whether iswcntrl works... " >&6; }
-if ${gl_cv_func_iswcntrl_works+:} false; then :
+if test ${gl_cv_func_iswcntrl_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
-          if test "$cross_compiling" = yes; then :
+          if test "$cross_compiling" = yes
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
@@ -26085,14 +29595,15 @@ else
                           Linux libc5 i18n is broken.
                           #endif
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_func_iswcntrl_works="guessing yes"
 else
   gl_cv_func_iswcntrl_works="guessing no"
@@ -26115,7 +29626,8 @@ else
                int main () { return iswprint ('x') == 0; }
 
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_iswcntrl_works=yes
 else
   gl_cv_func_iswcntrl_works=no
@@ -26151,7 +29663,8 @@ printf "%s\n" "$gl_cv_func_iswcntrl_works" >&6; }
     for ac_func in towlower
 do :
   ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
-if test "x$ac_cv_func_towlower" = xyes; then :
+if test "x$ac_cv_func_towlower" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_TOWLOWER 1
 _ACEOF
@@ -26175,7 +29688,8 @@ done
           #endif
 
 "
-if test "x$ac_cv_have_decl_towlower" = xyes; then :
+if test "x$ac_cv_have_decl_towlower" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -26200,7 +29714,8 @@ _ACEOF
 
           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
 printf %s "checking for wctype_t... " >&6; }
-if ${gl_cv_type_wctype_t+:} false; then :
+if test ${gl_cv_type_wctype_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26219,14 +29734,15 @@ else
             wctype_t a;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_type_wctype_t=yes
 else
   gl_cv_type_wctype_t=no
@@ -26242,7 +29758,8 @@ printf "%s\n" "$gl_cv_type_wctype_t" >&6; }
 
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
 printf %s "checking for wctrans_t... " >&6; }
-if ${gl_cv_type_wctrans_t+:} false; then :
+if test ${gl_cv_type_wctrans_t+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26259,14 +29776,15 @@ else
             wctrans_t a;
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_type_wctrans_t=yes
 else
   gl_cv_type_wctrans_t=no
@@ -26285,7 +29803,8 @@ printf "%s\n" "$gl_cv_type_wctrans_t" >&6; }
     as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
 printf %s "checking whether $gl_func is declared without a macro... " >&6; }
-if eval \${$as_gl_Symbol+:} false; then :
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -26304,7 +29823,7 @@ else
 #include <wctype.h>
 
 int
-main ()
+main (void)
 {
 #undef $gl_func
   (void) $gl_func;
@@ -26312,7 +29831,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_gl_Symbol=yes"
 else
   eval "$as_gl_Symbol=no"
@@ -26322,7 +29842,8 @@ fi
 eval ac_res=\$$as_gl_Symbol
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then :
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
   cat >>confdefs.h <<_ACEOF
 #define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
 _ACEOF
@@ -26356,7 +29877,8 @@ fi
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+if test "x$ac_cv_have_decl_wcwidth" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -26372,13 +29894,15 @@ _ACEOF
 
   if test $ac_cv_func_wcwidth = yes; then
     HAVE_WCWIDTH=1
-                    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
+                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wcwidth works reasonably in UTF-8 locales" >&5
 printf %s "checking whether wcwidth works reasonably in UTF-8 locales... " >&6; }
-if ${gl_cv_func_wcwidth_works+:} false; then :
+if test ${gl_cv_func_wcwidth_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
-        if test "$cross_compiling" = yes; then :
+        if test "$cross_compiling" = yes
+then :
 
            case "$host_os" in
                      # Guess yes on glibc and AIX 7 systems.
@@ -26419,11 +29943,14 @@ int main ()
         result |= 2;
       if (wcwidth (0x200B) > 0)
         result |= 4;
+      if (wcwidth (0xFF1A) == 0)
+        result |= 8;
     }
   return result;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_wcwidth_works=yes
 else
   gl_cv_func_wcwidth_works=no
@@ -26476,14 +30003,14 @@ printf "%s\n" "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
 
   for ac_header in stdint.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdint_h" = xyes; then :
+  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 :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_STDINT_H 1
 _ACEOF
 
 fi
-
 done
 
 
@@ -26493,45 +30020,259 @@ done
 
 
 
-  :
+  :
+
+  :
+
+
+  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
+
+  # End of code from modules
+
+
+
+
+
+
+
+
+
+  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
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS accept.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_ACCEPT" != 1; then
+        if test "$GNULIB_ACCEPT" = 0; then
+      GNULIB_ACCEPT=$gl_module_indicator_condition
+    else
+      GNULIB_ACCEPT="($GNULIB_ACCEPT || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_ACCEPT 1" >>confdefs.h
+
+
+
+
+
+
+
+  if test $ac_cv_header_arpa_inet_h = yes; then
+    HAVE_ARPA_INET_H=1
+  else
+    HAVE_ARPA_INET_H=0
+  fi
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_arpa_inet_h='<'arpa/inet.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <arpa/inet.h>" >&5
+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
+
+             if test $ac_cv_header_arpa_inet_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <arpa/inet.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 'arpa/inet.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_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'"'
+          else
+               gl_cv_next_arpa_inet_h='<'arpa/inet.h'>'
+             fi
+
+
+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; }
+     fi
+     NEXT_ARPA_INET_H=$gl_cv_next_arpa_inet_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='<'arpa/inet.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_arpa_inet_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+    for gl_func in inet_ntop inet_pton; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* On some systems, this header is not self-consistent.  */
+#if !(defined __GLIBC__ || defined __UCLIBC__)
+# include <sys/socket.h>
+#endif
+#ifdef __TANDEM
+# include <netdb.h>
+#endif
+#include <arpa/inet.h>
+
+int
+main (void)
+{
+#undef $gl_func
+  (void) $gl_func;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
+else
+  eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
+
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
+
+
 
-  :
 
+  if test "$ac_cv_header_winsock2_h" = yes; then
 
-  XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
 
-  # End of code from modules
 
 
 
 
 
 
+  gltests_LIBOBJS="$gltests_LIBOBJS bind.$ac_objext"
 
+  fi
 
 
-  gltests_libdeps=
-  gltests_ltlibdeps=
 
 
 
+    if test "$GNULIB_BIND" != 1; then
+        if test "$GNULIB_BIND" = 0; then
+      GNULIB_BIND=$gl_module_indicator_condition
+    else
+      GNULIB_BIND="($GNULIB_BIND || $gl_module_indicator_condition)"
+    fi
+  fi
 
 
 
 
 
+printf "%s\n" "#define GNULIB_TEST_BIND 1" >>confdefs.h
 
-  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
 
 
 
 
   { 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -26665,7 +30406,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -26794,7 +30536,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -26929,7 +30672,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_tr_utf8+:} false; then :
+if test ${gt_cv_locale_tr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27055,16 +30799,28 @@ printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
 
 
 
+  if test "$ac_cv_header_winsock2_h" = yes; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS connect.$ac_objext"
+
+  fi
 
 
 
 
 
-    if test "$GNULIB_ENVIRON" != 1; then
-        if test "$GNULIB_ENVIRON" = 0; then
-      GNULIB_ENVIRON=$gl_module_indicator_condition
+    if test "$GNULIB_CONNECT" != 1; then
+        if test "$GNULIB_CONNECT" = 0; then
+      GNULIB_CONNECT=$gl_module_indicator_condition
     else
-      GNULIB_ENVIRON="($GNULIB_ENVIRON || $gl_module_indicator_condition)"
+      GNULIB_CONNECT="($GNULIB_CONNECT || $gl_module_indicator_condition)"
     fi
   fi
 
@@ -27072,7 +30828,7 @@ printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
 
 
 
-printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_CONNECT 1" >>confdefs.h
 
 
 
@@ -27084,11 +30840,13 @@ printf "%s\n" "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
   else
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5
 printf %s "checking whether fdopen sets errno... " >&6; }
-if ${gl_cv_func_fdopen_works+:} false; then :
+if test ${gl_cv_func_fdopen_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
-        if test "$cross_compiling" = yes; then :
+        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" ;;
@@ -27111,7 +30869,8 @@ main (void)
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_fdopen_works=yes
 else
   gl_cv_func_fdopen_works=no
@@ -27166,6 +30925,69 @@ printf "%s\n" "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h
 
 
 
+  if test $ac_cv_func_ftruncate = yes; then
+
+
+      case "$host_os" in
+        mingw*)
+                                                                      REPLACE_FTRUNCATE=1
+          ;;
+      esac
+
+  else
+    HAVE_FTRUNCATE=0
+  fi
+
+  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS ftruncate.$ac_objext"
+
+
+  for ac_func in chsize
+do :
+  ac_fn_c_check_func "$LINENO" "chsize" "ac_cv_func_chsize"
+if test "x$ac_cv_func_chsize" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_CHSIZE 1
+_ACEOF
+
+fi
+done
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_FTRUNCATE" != 1; then
+        if test "$GNULIB_FTRUNCATE" = 0; then
+      GNULIB_FTRUNCATE=$gl_module_indicator_condition
+    else
+      GNULIB_FTRUNCATE="($GNULIB_FTRUNCATE || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_FTRUNCATE 1" >>confdefs.h
+
+
+
+
+
+
 
 
   case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
@@ -27214,7 +31036,8 @@ printf "%s\n" "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
   for ac_func in getpagesize
 do :
   ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = xyes; then :
+if test "x$ac_cv_func_getpagesize" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_GETPAGESIZE 1
 _ACEOF
@@ -27226,14 +31049,14 @@ done
     HAVE_GETPAGESIZE=0
     for ac_header in OS.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
-if test "x$ac_cv_header_OS_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
+if test "x$ac_cv_header_OS_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_OS_H 1
 _ACEOF
 
 fi
-
 done
 
     if test $ac_cv_header_OS_h = yes; then
@@ -27241,14 +31064,14 @@ done
     fi
     for ac_header in sys/param.h
 do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_param_h" = xyes; then :
+  ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SYS_PARAM_H 1
 _ACEOF
 
 fi
-
 done
 
     if test $ac_cv_header_sys_param_h = yes; then
@@ -27261,7 +31084,8 @@ done
       ;;
   esac
       ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
-if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
+if test "x$ac_cv_have_decl_getpagesize" = xyes
+then :
 
 else
   HAVE_DECL_GETPAGESIZE=0
@@ -27305,9 +31129,568 @@ printf "%s\n" "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
 
 
 
+
+
+
+              HAVE_INET_PTON=1
+  INET_PTON_LIB=
+
+
+
+
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+done
+
+  fi
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    HAVE_WINSOCK2_H=1
+    UNISTD_H_HAVE_WINSOCK2_H=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+  else
+    HAVE_WINSOCK2_H=0
+  fi
+
+
+  if test $HAVE_WINSOCK2_H = 1; then
+    ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "#include <ws2tcpip.h>
+"
+if test "x$ac_cv_have_decl_inet_pton" = xyes
+then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_INET_PTON $ac_have_decl
+_ACEOF
+
+    if test $ac_cv_have_decl_inet_pton = yes; then
+                  REPLACE_INET_PTON=1
+      INET_PTON_LIB="-lws2_32"
+    else
+      HAVE_DECL_INET_PTON=0
+      HAVE_INET_PTON=0
+    fi
+  else
+    gl_save_LIBS=$LIBS
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing inet_pton" >&5
+printf %s "checking for library containing inet_pton... " >&6; }
+if test ${ac_cv_search_inet_pton+y}
+then :
+  printf %s "(cached) " >&6
+else
+  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.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char inet_pton ();
+int
+main (void)
+{
+return inet_pton ();
+  ;
+  return 0;
+}
+_ACEOF
+for ac_lib in '' nsl resolv
+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_inet_pton=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test ${ac_cv_search_inet_pton+y}
+then :
+  break
+fi
+done
+if test ${ac_cv_search_inet_pton+y}
+then :
+
+else
+  ac_cv_search_inet_pton=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_inet_pton" >&5
+printf "%s\n" "$ac_cv_search_inet_pton" >&6; }
+ac_res=$ac_cv_search_inet_pton
+if test "$ac_res" != no
+then :
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else
+  for ac_func in inet_pton
+do :
+  ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton"
+if test "x$ac_cv_func_inet_pton" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_INET_PTON 1
+_ACEOF
+
+fi
+done
+
+       if test $ac_cv_func_inet_pton = no; then
+         HAVE_INET_PTON=0
+       fi
+
+fi
+
+    LIBS=$gl_save_LIBS
+
+    if test "$ac_cv_search_inet_pton" != "no" \
+       && test "$ac_cv_search_inet_pton" != "none required"; then
+      INET_PTON_LIB="$ac_cv_search_inet_pton"
+    fi
+
+
+    ac_fn_c_check_decl "$LINENO" "inet_pton" "ac_cv_have_decl_inet_pton" "#include <arpa/inet.h>
+        #if HAVE_NETDB_H
+        # include <netdb.h>
+        #endif
+
+"
+if test "x$ac_cv_have_decl_inet_pton" = xyes
+then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_INET_PTON $ac_have_decl
+_ACEOF
+
+    if test $ac_cv_have_decl_inet_pton = no; then
+      HAVE_DECL_INET_PTON=0
+    fi
+  fi
+
+
+  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS inet_pton.$ac_objext"
+
+
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_INET_PTON" != 1; then
+        if test "$GNULIB_INET_PTON" = 0; then
+      GNULIB_INET_PTON=$gl_module_indicator_condition
+    else
+      GNULIB_INET_PTON="($GNULIB_INET_PTON || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+printf %s "checking whether byte ordering is bigendian... " >&6; }
+if test ${ac_cv_c_bigendian+y}
+then :
+  printf %s "(cached) " >&6
+else
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+              not a universal capable compiler
+            #endif
+            typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+       # Check for potential -arch flags.  It is not universal unless
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+            #include <sys/param.h>
+
+int
+main (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
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main (void)
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+             bogus endian macros
+            #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
+
+int
+main (void)
+{
+#ifndef _BIG_ENDIAN
+                not big endian
+               #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes
+then :
+  # Try to guess by grepping values from an object file.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+                 { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+               short int ascii_ii[] =
+                 { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+               int use_ascii (int i) {
+                 return ascii_mm[i] + ascii_ii[i];
+               }
+               short int ebcdic_ii[] =
+                 { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+               short int ebcdic_mm[] =
+                 { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+               int use_ebcdic (int i) {
+                 return ebcdic_mm[i] + ebcdic_ii[i];
+               }
+               extern int foo;
+
+int
+main (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.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main (void)
+{
+
+            /* Are we little or big endian?  From Harbison&Steele.  */
+            union
+            {
+              long int l;
+              char c[sizeof (long int)];
+            } u;
+            u.l = 1;
+            return u.c[sizeof (long int) - 1] == 1;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+    fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+printf "%s\n" "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
+
+printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
+
+
+
+
+  HAVE_IOCTL=1
+  if test "$ac_cv_header_winsock2_h" = yes; then
+                HAVE_IOCTL=0
+  else
+    for ac_func in ioctl
+do :
+  ac_fn_c_check_func "$LINENO" "ioctl" "ac_cv_func_ioctl"
+if test "x$ac_cv_func_ioctl" = xyes
+then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_IOCTL 1
+_ACEOF
+
+fi
+done
+
+                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ioctl with POSIX signature" >&5
+printf %s "checking for ioctl with POSIX signature... " >&6; }
+if test ${gl_cv_func_ioctl_posix_signature+y}
+then :
+  printf %s "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/ioctl.h>
+int
+main (void)
+{
+extern
+              #ifdef __cplusplus
+              "C"
+              #endif
+              int ioctl (int, int, ...);
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_func_ioctl_posix_signature=yes
+else
+  gl_cv_func_ioctl_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+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; }
+    if test $gl_cv_func_ioctl_posix_signature != yes; then
+      REPLACE_IOCTL=1
+    fi
+  fi
+
+  if test $HAVE_IOCTL = 0 || test $REPLACE_IOCTL = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS ioctl.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_IOCTL" != 1; then
+        if test "$GNULIB_IOCTL" = 0; then
+      GNULIB_IOCTL=$gl_module_indicator_condition
+    else
+      GNULIB_IOCTL="($GNULIB_IOCTL || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_IOCTL 1" >>confdefs.h
+
+
+
+
+  if test "$ac_cv_header_winsock2_h" = yes; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS listen.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_LISTEN" != 1; then
+        if test "$GNULIB_LISTEN" = 0; then
+      GNULIB_LISTEN=$gl_module_indicator_condition
+    else
+      GNULIB_LISTEN="($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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27441,7 +31824,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27570,7 +31954,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_ja+:} false; then :
+if test ${gt_cv_locale_ja+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27709,7 +32094,8 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27842,7 +32228,8 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
   { 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 ${gt_cv_locale_tr_utf8+:} false; then :
+if test ${gt_cv_locale_tr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -27971,7 +32358,8 @@ printf "%s\n" "$gt_cv_locale_tr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28100,7 +32488,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28234,7 +32623,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28363,7 +32753,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_ja+:} false; then :
+if test ${gt_cv_locale_ja+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28502,7 +32893,8 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28634,7 +33026,8 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28763,7 +33156,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -28898,7 +33292,8 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
   # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
   # irrelevant for anonymous mappings.
   ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = xyes; then :
+if test "x$ac_cv_func_mmap" = xyes
+then :
   gl_have_mmap=yes
 else
   gl_have_mmap=no
@@ -28920,7 +33315,8 @@ 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; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
   gl_have_mmap_anonymous=yes
 fi
 rm -rf conftest*
@@ -28936,7 +33332,8 @@ rm -rf conftest*
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
 
 printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
@@ -28959,9 +33356,393 @@ printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
 
 
 
+
+
+
+
+
+ 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=
+
+ { 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
+  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.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char nanosleep ();
+int
+main (void)
+{
+return nanosleep ();
+  ;
+  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_nanosleep=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test ${ac_cv_search_nanosleep+y}
+then :
+  break
+fi
+done
+if test ${ac_cv_search_nanosleep+y}
+then :
+
+else
+  ac_cv_search_nanosleep=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_nanosleep" >&5
+printf "%s\n" "$ac_cv_search_nanosleep" >&6; }
+ac_res=$ac_cv_search_nanosleep
+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
+fi
+
+ if test "x$ac_cv_search_nanosleep" != xno; then
+
+
+   if test $APPLE_UNIVERSAL_BUILD = 1; then
+     # A universal build on Apple Mac OS X platforms.
+     # The test result would be 'no (mishandles large arguments)' in 64-bit
+     # mode but 'yes' in 32-bit mode. But we need a configuration result that
+     # is valid in both modes.
+     gl_cv_func_nanosleep='no (mishandles large arguments)'
+   fi
+
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working nanosleep" >&5
+printf %s "checking for working nanosleep... " >&6; }
+if test ${gl_cv_func_nanosleep+y}
+then :
+  printf %s "(cached) " >&6
+else
+
+     if test "$cross_compiling" = yes
+then :
+  case "$host_os" in           linux*) # Guess it halfway works when the kernel is Linux.
+            gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
+          *)      # If we don't know, assume the worst.
+            gl_cv_func_nanosleep='guessing no' ;;
+        esac
+
+else
+  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))
+          #define TYPE_MAXIMUM(t) \
+            ((t) (! TYPE_SIGNED (t) \
+                  ? (t) -1 \
+                  : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+          static void
+          check_for_SIGALRM (int sig)
+          {
+            if (sig != SIGALRM)
+              _exit (1);
+          }
+
+          int
+          main ()
+          {
+            static struct timespec ts_sleep;
+            static struct timespec ts_remaining;
+            static struct sigaction act;
+            /* Test for major problems first.  */
+            if (! nanosleep)
+              return 2;
+            act.sa_handler = check_for_SIGALRM;
+            sigemptyset (&act.sa_mask);
+            sigaction (SIGALRM, &act, NULL);
+            ts_sleep.tv_sec = 0;
+            ts_sleep.tv_nsec = 1;
+            alarm (1);
+            if (nanosleep (&ts_sleep, NULL) != 0)
+              return 3;
+            /* Test for a minor problem: the handling of large arguments.  */
+            ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
+            ts_sleep.tv_nsec = 999999999;
+            alarm (1);
+            if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+              return 4;
+            if (errno != EINTR)
+              return 5;
+            if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
+              return 6;
+            return 0;
+          }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_nanosleep=yes
+else
+  case $? in         4|5|6) gl_cv_func_nanosleep='no (mishandles large arguments)';;         *)   gl_cv_func_nanosleep=no;;
+        esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nanosleep" >&5
+printf "%s\n" "$gl_cv_func_nanosleep" >&6; }
+   case "$gl_cv_func_nanosleep" in
+     *yes)
+       REPLACE_NANOSLEEP=0
+       ;;
+     *)
+       REPLACE_NANOSLEEP=1
+       case "$gl_cv_func_nanosleep" in
+         *"mishandles large arguments"*)
+
+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
+ else
+   HAVE_NANOSLEEP=0
+ fi
+ LIBS=$nanosleep_save_libs
+
+  if test $HAVE_NANOSLEEP = 0 || test $REPLACE_NANOSLEEP = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS nanosleep.$ac_objext"
+
+
+
+  :
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_NANOSLEEP" != 1; then
+        if test "$GNULIB_NANOSLEEP" = 0; then
+      GNULIB_NANOSLEEP=$gl_module_indicator_condition
+    else
+      GNULIB_NANOSLEEP="($GNULIB_NANOSLEEP || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_NANOSLEEP 1" >>confdefs.h
+
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <netinet/in.h> is self-contained" >&5
+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
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <netinet/in.h>
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_netinet_in_h_selfcontained=yes
+else
+  gl_cv_header_netinet_in_h_selfcontained=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+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=''
+  else
+    NETINET_IN_H='netinet/in.h'
+    for ac_header in netinet/in.h
+do :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_NETINET_IN_H 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_netinet_in_h='<'netinet/in.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <netinet/in.h>" >&5
+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
+
+             if test $ac_cv_header_netinet_in_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <netinet/in.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 'netinet/in.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_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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -29095,7 +33876,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -29221,12 +34003,160 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
 
 
+
+
+
+          if test "$ERRNO_H:$REPLACE_STRERROR_0" != :0; then
+            REPLACE_PERROR=1
+  fi
+  case ${gl_cv_func_strerror_r_works-unset} in
+    unset|*yes)
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether perror matches strerror" >&5
+printf %s "checking whether perror matches strerror... " >&6; }
+if test ${gl_cv_func_perror_works+y}
+then :
+  printf %s "(cached) " >&6
+else
+  if test "$cross_compiling" = yes
+then :
+              gl_cv_func_perror_works="guessing no"
+
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <errno.h>
+                #include <stdio.h>
+                #include <stdlib.h>
+                #include <string.h>
+
+int
+main (void)
+{
+char *str = strerror (-1);
+                if (!getenv("CONFTEST_OUTPUT")) return 0;
+                if (!str) str = "";
+                puts (str);
+                errno = -1;
+                perror ("");
+                return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+  if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \
+               && cmp conftest.txt1 conftest.txt2 >/dev/null; then
+              gl_cv_func_perror_works=yes
+            else
+              gl_cv_func_perror_works=no
+            fi
+            rm -rf conftest.txt1 conftest.txt2
+else
+  gl_cv_func_perror_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_perror_works" >&5
+printf "%s\n" "$gl_cv_func_perror_works" >&6; }
+      if test "$gl_cv_func_perror_works" != yes; then
+        REPLACE_PERROR=1
+      fi
+      ;;
+    *)
+                  REPLACE_PERROR=1
+      ;;
+  esac
+
+  if test $REPLACE_PERROR = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS perror.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_PERROR" != 1; then
+        if test "$GNULIB_PERROR" = 0; then
+      GNULIB_PERROR=$gl_module_indicator_condition
+    else
+      GNULIB_PERROR="($GNULIB_PERROR || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_PERROR 1" >>confdefs.h
+
+
+
+
+
+
+
+  if test $ac_cv_func_pipe != yes; then
+    HAVE_PIPE=0
+  fi
+
+  if test $HAVE_PIPE = 0; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS pipe.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_PIPE" != 1; then
+        if test "$GNULIB_PIPE" = 0; then
+      GNULIB_PIPE=$gl_module_indicator_condition
+    else
+      GNULIB_PIPE="($GNULIB_PIPE || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_PIPE 1" >>confdefs.h
+
+
+
+
+
      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5
 printf %s "checking for putenv compatible with GNU and SVID... " >&6; }
-if ${gl_cv_func_svid_putenv+:} false; then :
+if test ${gl_cv_func_svid_putenv+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
                case "$host_os" in
                         # Guess yes on glibc systems.
                 *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;;
@@ -29239,7 +34169,7 @@ else
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 
     /* Put it in env.  */
@@ -29260,7 +34190,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_svid_putenv=yes
 else
   gl_cv_func_svid_putenv=no
@@ -29293,7 +34224,8 @@ printf "%s\n" "$gl_cv_func_svid_putenv" >&6; }
 
 
   ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default"
-if test "x$ac_cv_have_decl__putenv" = xyes; then :
+if test "x$ac_cv_have_decl__putenv" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -29328,75 +34260,298 @@ printf "%s\n" "#define GNULIB_TEST_PUTENV 1" >>confdefs.h
 
 
 
-     if test $ac_cv_func_setenv = no; then
-    HAVE_SETENV=0
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes
+then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+printf %s "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -rf conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
+
+printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -rf conftest*
+
+    fi
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+printf "%s\n" "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+  # Check for mmap(). Don't use AC_FUNC_MMAP, because it checks too much: it
+  # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
+  # irrelevant for anonymous mappings.
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes
+then :
+  gl_have_mmap=yes
+else
+  gl_have_mmap=no
+fi
+
+
+  # Try to allow MAP_ANONYMOUS.
+  gl_have_mmap_anonymous=no
+  if test $gl_have_mmap = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+printf %s "checking for MAP_ANONYMOUS... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANONYMOUS
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
+  gl_have_mmap_anonymous=yes
+fi
+rm -rf conftest*
+
+    if test $gl_have_mmap_anonymous != yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <sys/mman.h>
+#ifdef MAP_ANON
+    I cannot identify this map
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
+
+printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+         gl_have_mmap_anonymous=yes
+fi
+rm -rf conftest*
+
+    fi
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+printf "%s\n" "$gl_have_mmap_anonymous" >&6; }
+    if test $gl_have_mmap_anonymous = yes; then
+
+printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+    fi
+  fi
+
+
+
+
+
+
+
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    REPLACE_SELECT=1
   else
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
-printf %s "checking whether setenv validates arguments... " >&6; }
-if ${gl_cv_func_setenv_works+:} false; then :
+
+    { 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
-  if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-                 # Guess yes on glibc systems.
-         *-gnu*) gl_cv_func_setenv_works="guessing yes" ;;
-                 # If we don't know, assume the worst.
-         *)      gl_cv_func_setenv_works="guessing no" ;;
-       esac
+
+        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
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-       #include <stdlib.h>
-       #include <errno.h>
-       #include <string.h>
+#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
+  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
+
+        if test "$cross_compiling" = yes
+then :
+
+           case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_select_detects_ebadf="guessing no" ;;
+           esac
+
+else
+  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>
 
 int
-main ()
+main (void)
 {
 
-       int result = 0;
-       {
-         if (setenv ("", "", 0) != -1)
-           result |= 1;
-         else if (errno != EINVAL)
-           result |= 2;
-       }
-       {
-         if (setenv ("a", "=", 1) != 0)
-           result |= 4;
-         else if (strcmp (getenv ("a"), "=") != 0)
-           result |= 8;
-       }
-       return result;
+  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_setenv_works=yes
+if ac_fn_c_try_run "$LINENO"
+then :
+  gl_cv_func_select_detects_ebadf=yes
 else
-  gl_cv_func_setenv_works=no
+  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
 
+
 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; }
-    case "$gl_cv_func_setenv_works" in
+{ 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_SETENV=1
+      *) 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.  */
+
+#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
+  LIB_SELECT="$LIB_SELECT -luser32"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
         ;;
     esac
   fi
 
-  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
 
+  if test $REPLACE_SELECT = 1; then
 
 
 
@@ -29404,7 +34559,8 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext"
+
+  gltests_LIBOBJS="$gltests_LIBOBJS select.$ac_objext"
 
   fi
 
@@ -29412,11 +34568,11 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
 
 
 
-    if test "$GNULIB_SETENV" != 1; then
-        if test "$GNULIB_SETENV" = 0; then
-      GNULIB_SETENV=$gl_module_indicator_condition
+    if test "$GNULIB_SELECT" != 1; then
+        if test "$GNULIB_SELECT" = 0; then
+      GNULIB_SELECT=$gl_module_indicator_condition
     else
-      GNULIB_SETENV="($GNULIB_SETENV || $gl_module_indicator_condition)"
+      GNULIB_SELECT="($GNULIB_SELECT || $gl_module_indicator_condition)"
     fi
   fi
 
@@ -29424,7 +34580,8 @@ printf "%s\n" "$gl_cv_func_setenv_works" >&6; }
 
 
 
-printf "%s\n" "#define GNULIB_TEST_SETENV 1" >>confdefs.h
+printf "%s\n" "#define GNULIB_TEST_SELECT 1" >>confdefs.h
+
 
 
 
@@ -29481,7 +34638,8 @@ printf "%s\n" "#define GNULIB_TEST_SETLOCALE 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -29615,7 +34773,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -29744,7 +34903,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_ja+:} false; then :
+if test ${gt_cv_locale_ja+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -29883,7 +35043,8 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -30012,10 +35173,45 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
 
 
+  if test "$ac_cv_header_winsock2_h" = yes; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS setsockopt.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_SETSOCKOPT" != 1; then
+        if test "$GNULIB_SETSOCKOPT" = 0; then
+      GNULIB_SETSOCKOPT=$gl_module_indicator_condition
+    else
+      GNULIB_SETSOCKOPT="($GNULIB_SETSOCKOPT || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_SETSOCKOPT 1" >>confdefs.h
+
+
+
+
 
                ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include <unistd.h>
 "
-if test "x$ac_cv_have_decl_sleep" = xyes; then :
+if test "x$ac_cv_have_decl_sleep" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -30031,10 +35227,12 @@ _ACEOF
   else
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5
 printf %s "checking for working sleep... " >&6; }
-if ${gl_cv_func_sleep_works+:} false; then :
+if test ${gl_cv_func_sleep_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                  # Guess yes on glibc systems.
          *-gnu*) gl_cv_func_sleep_works="guessing yes" ;;
@@ -30057,7 +35255,7 @@ handle_alarm (int sig)
 }
 
 int
-main ()
+main (void)
 {
 
     /* Failure to compile this test due to missing alarm is okay,
@@ -30077,7 +35275,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_sleep_works=yes
 else
   gl_cv_func_sleep_works=no
@@ -30137,7 +35336,8 @@ printf "%s\n" "#define GNULIB_TEST_SLEEP 1" >>confdefs.h
   for ac_func in snprintf
 do :
   ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
-if test "x$ac_cv_func_snprintf" = xyes; then :
+if test "x$ac_cv_func_snprintf" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SNPRINTF 1
 _ACEOF
@@ -30151,11 +35351,13 @@ done
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
 printf %s "checking whether snprintf respects a size of 1... " >&6; }
-if ${gl_cv_func_snprintf_size1+:} false; then :
+if test ${gl_cv_func_snprintf_size1+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
   gl_cv_func_snprintf_size1="guessing yes"
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -30183,7 +35385,8 @@ int main()
   return buf[1] != 'E';
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_snprintf_size1=yes
 else
   gl_cv_func_snprintf_size1=no
@@ -30206,11 +35409,13 @@ printf "%s\n" "$gl_cv_func_snprintf_size1" >&6; }
 
      { 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 ${gl_cv_func_printf_positions+:} false; then :
+if test ${gl_cv_func_printf_positions+y}
+then :
   printf %s "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then :
+      if test "$cross_compiling" = yes
+then :
 
          case "$host_os" in
            netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
@@ -30236,7 +35441,8 @@ int main ()
   return (strcmp (buf, "55 33") != 0);
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_printf_positions=yes
 else
   gl_cv_func_printf_positions=no
@@ -30313,6 +35519,254 @@ _ACEOF
 
 
 
+  if test "$ac_cv_header_winsock2_h" = yes; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS socket.$ac_objext"
+
+  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.
+
+
+
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+  fi
+
+
+
+
+
+    if test "$GNULIB_SOCKET" != 1; then
+        if test "$GNULIB_SOCKET" = 0; then
+      GNULIB_SOCKET=$gl_module_indicator_condition
+    else
+      GNULIB_SOCKET="($GNULIB_SOCKET || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_SOCKET 1" >>confdefs.h
+
+
+
+
+
+     ac_fn_c_check_type "$LINENO" "socklen_t" "ac_cv_type_socklen_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>
+#if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#elif HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+#endif
+
+"
+if test "x$ac_cv_type_socklen_t" = xyes
+then :
+
+else
+  { 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
+  # 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
+           for t in int size_t "unsigned int" "long int" "unsigned long int"; do
+             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+                   #include <sys/socket.h>
+
+                   int getpeername (int, $arg2 *, $t *);
+int
+main (void)
+{
+$t len;
+                  getpeername (0, 0, &len);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_socklen_t_equiv="$t"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+             test "$gl_cv_socklen_t_equiv" != "" && break
+           done
+           test "$gl_cv_socklen_t_equiv" != "" && break
+         done
+
+fi
+
+      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
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_socklen_t_equiv" >&5
+printf "%s\n" "$gl_cv_socklen_t_equiv" >&6; }
+
+cat >>confdefs.h <<_ACEOF
+#define socklen_t $gl_cv_socklen_t_equiv
+_ACEOF
+
+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
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdalign.h>
+            #include <stddef.h>
+
+            /* Test that alignof yields a result consistent with offsetof.
+               This catches GCC bug 52023
+               <http://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) \
+                 || (defined __APPLE__ && defined __MACH__ \
+                     ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+                     : __GNUC__) \
+                 || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \
+                 || __ICC || 0x5110 <= __SUNPRO_C \
+                 || 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
+  gl_cv_header_working_stdalign_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+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=
+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_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
+
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+
+
+
+
+
+
+
+
+  gltests_LIBOBJS="$gltests_LIBOBJS strerror_r.$ac_objext"
+
+
+
+
+
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_STRERROR_R" != 1; then
+        if test "$GNULIB_STRERROR_R" = 0; then
+      GNULIB_STRERROR_R=$gl_module_indicator_condition
+    else
+      GNULIB_STRERROR_R="($GNULIB_STRERROR_R || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_STRERROR_R 1" >>confdefs.h
+
+
 
 
 
@@ -30321,7 +35775,8 @@ _ACEOF
   # fails on HP-UX 11, because MAP_FIXED mappings do not work. But this is
   # irrelevant for anonymous mappings.
   ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
-if test "x$ac_cv_func_mmap" = xyes; then :
+if test "x$ac_cv_func_mmap" = xyes
+then :
   gl_have_mmap=yes
 else
   gl_have_mmap=no
@@ -30343,7 +35798,8 @@ 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; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
   gl_have_mmap_anonymous=yes
 fi
 rm -rf conftest*
@@ -30359,7 +35815,8 @@ rm -rf conftest*
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "I cannot identify this map" >/dev/null 2>&1; then :
+  $EGREP "I cannot identify this map" >/dev/null 2>&1
+then :
 
 printf "%s\n" "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
 
@@ -30387,10 +35844,12 @@ printf "%s\n" "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
   else
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5
 printf %s "checking whether symlink handles trailing slash correctly... " >&6; }
-if ${gl_cv_func_symlink_works+:} false; then :
+if test ${gl_cv_func_symlink_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   case "$host_os" in
                     # Guess yes on glibc systems.
             *-gnu*) gl_cv_func_symlink_works="guessing yes" ;;
@@ -30404,7 +35863,7 @@ else
 #include <unistd.h>
 
 int
-main ()
+main (void)
 {
 int result = 0;
              if (!symlink ("a", "conftest.link/"))
@@ -30419,7 +35878,8 @@ int result = 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_symlink_works=yes
 else
   gl_cv_func_symlink_works=no
@@ -30449,260 +35909,448 @@ printf "%s\n" "$gl_cv_func_symlink_works" >&6; }
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext"
+  gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext"
+
+  fi
+
+
+
+
+
+    if test "$GNULIB_SYMLINK" != 1; then
+        if test "$GNULIB_SYMLINK" = 0; then
+      GNULIB_SYMLINK=$gl_module_indicator_condition
+    else
+      GNULIB_SYMLINK="($GNULIB_SYMLINK || $gl_module_indicator_condition)"
+    fi
+  fi
+
+
+
+
+
+printf "%s\n" "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+  if test $ac_cv_header_sys_ioctl_h = yes; then
+    HAVE_SYS_IOCTL_H=1
+            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/ioctl.h> declares ioctl" >&5
+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
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/ioctl.h>
+
+int
+main (void)
+{
+(void) ioctl;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_decl_ioctl_in_sys_ioctl_h=yes
+else
+  gl_cv_decl_ioctl_in_sys_ioctl_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+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; }
+  else
+    HAVE_SYS_IOCTL_H=0
+  fi
+
+
+
+
+
+
 
-  fi
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/ioctl.h>" >&5
+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
 
+             if test $ac_cv_header_sys_ioctl_h = yes; then
 
-    if test "$GNULIB_SYMLINK" != 1; then
-        if test "$GNULIB_SYMLINK" = 0; then
-      GNULIB_SYMLINK=$gl_module_indicator_condition
-    else
-      GNULIB_SYMLINK="($GNULIB_SYMLINK || $gl_module_indicator_condition)"
-    fi
-  fi
 
 
 
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/ioctl.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/ioctl.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_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'"'
+          else
+               gl_cv_next_sys_ioctl_h='<'sys/ioctl.h'>'
+             fi
 
-printf "%s\n" "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h
 
+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; }
+     fi
+     NEXT_SYS_IOCTL_H=$gl_cv_next_sys_ioctl_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/ioctl.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_ioctl_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H=$gl_next_as_first_directive
 
 
 
 
-  if test $ac_cv_have_decl_unsetenv = no; then
-    HAVE_DECL_UNSETENV=0
-  fi
-  for ac_func in unsetenv
-do :
-  ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
-if test "x$ac_cv_func_unsetenv" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UNSETENV 1
-_ACEOF
 
-fi
-done
 
-  if test $ac_cv_func_unsetenv = no; then
-    HAVE_UNSETENV=0
-  else
-    HAVE_UNSETENV=1
-        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
-printf %s "checking for unsetenv() return type... " >&6; }
-if ${gt_cv_func_unsetenv_ret+:} false; then :
+    for gl_func in ioctl; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#undef _BSD
-#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
-#include <stdlib.h>
-extern
-#ifdef __cplusplus
-"C"
+#include <sys/ioctl.h>
+/* Some platforms declare ioctl in the wrong header.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <unistd.h>
 #endif
-int unsetenv (const char *name);
 
 int
-main ()
+main (void)
 {
-
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  gt_cv_func_unsetenv_ret='int'
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
 else
-  gt_cv_func_unsetenv_ret='void'
+  eval "$as_gl_Symbol=no"
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 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; }
-    if test $gt_cv_func_unsetenv_ret = 'void'; then
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
-printf "%s\n" "#define VOID_UNSETENV 1" >>confdefs.h
+                     eval ac_cv_have_decl_$gl_func=yes
+fi
+      done
 
-      REPLACE_UNSETENV=1
-    fi
 
-                { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
-printf %s "checking whether unsetenv obeys POSIX... " >&6; }
-if ${gl_cv_func_unsetenv_works+:} false; then :
+
+
+
+
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether <sys/select.h> is self-contained" >&5
+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
-  if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-                 # Guess yes on glibc systems.
-         *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;;
-                 # If we don't know, assume the worst.
-         *)      gl_cv_func_unsetenv_works="guessing no" ;;
-       esac
 
+                                    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
+int
+main (void)
+{
+struct timeval b;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  gl_cv_header_sys_select_h_selfcontained=yes
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  gl_cv_header_sys_select_h_selfcontained=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+                        if test $gl_cv_header_sys_select_h_selfcontained = yes; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <sys/select.h>
+int
+main (void)
+{
+int memset; int bzero;
+  ;
+  return 0;
+}
 
-       #include <stdlib.h>
-       #include <errno.h>
-       extern char **environ;
-
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.h>
 int
-main ()
+main (void)
 {
 
-       char entry1[] = "a=1";
-       char entry2[] = "b=2";
-       char *env[] = { entry1, entry2, NULL };
-       if (putenv ((char *) "a=1")) return 1;
-       if (putenv (entry2)) return 2;
-       entry2[0] = 'a';
-       unsetenv ("a");
-       if (getenv ("a")) return 3;
-       if (!unsetenv ("") || errno != EINVAL) return 4;
-       entry2[0] = 'b';
-       environ = env;
-       if (!getenv ("a")) return 5;
-       entry2[0] = 'a';
-       unsetenv ("a");
-       if (getenv ("a")) return 6;
+                  #undef memset
+                  #define memset nonexistent_memset
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void *memset (void *, int, unsigned long);
+                  #undef bzero
+                  #define bzero nonexistent_bzero
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void bzero (void *, unsigned long);
+                  fd_set fds;
+                  FD_ZERO (&fds);
 
   ;
   return 0;
 }
+
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_unsetenv_works=yes
+if ac_fn_c_try_link "$LINENO"
+then :
+
 else
-  gl_cv_func_unsetenv_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  gl_cv_header_sys_select_h_selfcontained=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 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; }
-    case "$gl_cv_func_unsetenv_works" in
-      *yes) ;;
-      *)
-        REPLACE_UNSETENV=1
-        ;;
-    esac
-  fi
-
-  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      fi
 
+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; }
 
 
 
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext"
 
 
 
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_select_h='<'sys/select.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/select.h>" >&5
+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
 
+             if test $ac_cv_header_sys_select_h = yes; then
 
-  fi
 
 
 
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/select.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/select.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_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'"'
+          else
+               gl_cv_next_sys_select_h='<'sys/select.h'>'
+             fi
 
-    if test "$GNULIB_UNSETENV" != 1; then
-        if test "$GNULIB_UNSETENV" = 0; then
-      GNULIB_UNSETENV=$gl_module_indicator_condition
-    else
-      GNULIB_UNSETENV="($GNULIB_UNSETENV || $gl_module_indicator_condition)"
-    fi
-  fi
 
+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; }
+     fi
+     NEXT_SYS_SELECT_H=$gl_cv_next_sys_select_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/select.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_select_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H=$gl_next_as_first_directive
 
 
 
-printf "%s\n" "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
 
+  if test $ac_cv_header_sys_select_h = yes; then
+    HAVE_SYS_SELECT_H=1
+  else
+    HAVE_SYS_SELECT_H=0
+  fi
 
 
-  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
 
 
+  if test $ac_cv_header_sys_socket_h != yes; then
+                    for ac_header in winsock2.h
+do :
+  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 :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
 
+fi
+done
 
-  ac_fn_c_check_type "$LINENO" "useconds_t" "ac_cv_type_useconds_t" "$ac_includes_default"
-if test "x$ac_cv_type_useconds_t" = xyes; then :
+  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
 
-else
 
-printf "%s\n" "#define useconds_t unsigned int" >>confdefs.h
 
-fi
 
-  if test $ac_cv_func_usleep = no; then
-    HAVE_USLEEP=0
-  else
-            { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether usleep allows large arguments" >&5
-printf %s "checking whether usleep allows large arguments... " >&6; }
-if ${gl_cv_func_usleep_works+:} false; then :
+    for gl_func in pselect select; do
+    as_gl_Symbol=`printf "%s\n" "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5
+printf %s "checking whether $gl_func is declared without a macro... " >&6; }
+if eval test \${$as_gl_Symbol+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-                   # Guess yes on glibc systems.
-           *-gnu*) gl_cv_func_usleep_works="guessing yes" ;;
-                   # If we don't know, assume the worst.
-           *)      gl_cv_func_usleep_works="guessing no" ;;
-         esac
-
-else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <unistd.h>
+/* Some systems require prerequisite headers.  */
+#include <sys/types.h>
+#if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#include <sys/select.h>
 
 int
-main ()
+main (void)
 {
-return !!usleep (1000000);
+#undef $gl_func
+  (void) $gl_func;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  gl_cv_func_usleep_works=yes
+if ac_fn_c_try_compile "$LINENO"
+then :
+  eval "$as_gl_Symbol=yes"
 else
-  gl_cv_func_usleep_works=no
+  eval "$as_gl_Symbol=no"
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+eval ac_res=\$$as_gl_Symbol
+              { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+    if eval test \"x\$"$as_gl_Symbol"\" = x"yes"
+then :
+  cat >>confdefs.h <<_ACEOF
+#define `printf "%s\n" "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1
+_ACEOF
 
+                     eval ac_cv_have_decl_$gl_func=yes
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_usleep_works" >&5
-printf "%s\n" "$gl_cv_func_usleep_works" >&6; }
-    case "$gl_cv_func_usleep_works" in
-      *yes) ;;
-      *)
-        REPLACE_USLEEP=1
-        ;;
-    esac
-  fi
+      done
 
-  if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then
 
 
 
@@ -30711,29 +36359,93 @@ printf "%s\n" "$gl_cv_func_usleep_works" >&6; }
 
 
 
-  gltests_LIBOBJS="$gltests_LIBOBJS usleep.$ac_objext"
 
-  fi
 
 
 
 
 
-    if test "$GNULIB_USLEEP" != 1; then
-        if test "$GNULIB_USLEEP" = 0; then
-      GNULIB_USLEEP=$gl_module_indicator_condition
-    else
-      GNULIB_USLEEP="($GNULIB_USLEEP || $gl_module_indicator_condition)"
-    fi
-  fi
+
+
+     if test $gl_cv_have_include_next = yes; then
+       gl_cv_next_sys_uio_h='<'sys/uio.h'>'
+     else
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/uio.h>" >&5
+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
+
+             if test $ac_cv_header_sys_uio_h = yes; then
+
+
+
+
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/uio.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/uio.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_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'"'
+          else
+               gl_cv_next_sys_uio_h='<'sys/uio.h'>'
+             fi
+
+
+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; }
+     fi
+     NEXT_SYS_UIO_H=$gl_cv_next_sys_uio_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/uio.h'>'
+     else
+       # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+       gl_next_as_first_directive=$gl_cv_next_sys_uio_h
+     fi
+     NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H=$gl_next_as_first_directive
 
 
 
 
+  if test $ac_cv_header_sys_uio_h = yes; then
+    HAVE_SYS_UIO_H=1
+  else
+    HAVE_SYS_UIO_H=0
+  fi
 
-printf "%s\n" "#define GNULIB_TEST_USLEEP 1" >>confdefs.h
 
 
+  abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
   abs_aux_dir=`cd "$ac_aux_dir"; pwd`
 
@@ -30742,7 +36454,8 @@ printf "%s\n" "#define GNULIB_TEST_USLEEP 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 ${gt_cv_locale_fr+:} false; then :
+if test ${gt_cv_locale_fr+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -30876,7 +36589,8 @@ printf "%s\n" "$gt_cv_locale_fr" >&6; }
 
   { 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 ${gt_cv_locale_fr_utf8+:} false; then :
+if test ${gt_cv_locale_fr_utf8+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31005,7 +36719,8 @@ printf "%s\n" "$gt_cv_locale_fr_utf8" >&6; }
 
   { 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 ${gt_cv_locale_ja+:} false; then :
+if test ${gt_cv_locale_ja+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31144,7 +36859,8 @@ printf "%s\n" "$gt_cv_locale_ja" >&6; }
 
   { 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 ${gt_cv_locale_zh_CN+:} false; then :
+if test ${gt_cv_locale_zh_CN+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31286,7 +37002,8 @@ printf "%s\n" "$gt_cv_locale_zh_CN" >&6; }
 
          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether wctob works" >&5
 printf %s "checking whether wctob works... " >&6; }
-if ${gl_cv_func_wctob_works+:} false; then :
+if test ${gl_cv_func_wctob_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31299,7 +37016,8 @@ else
         esac
         case "$host_os" in
           cygwin*)
-            if test "$cross_compiling" = yes; then :
+            if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -31329,7 +37047,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   :
 else
   gl_cv_func_wctob_works=no
@@ -31341,7 +37060,8 @@ fi
             ;;
         esac
         if test "$gl_cv_func_wctob_works" != no && test $LOCALE_FR != none; then
-          if test "$cross_compiling" = yes; then :
+          if test "$cross_compiling" = yes
+then :
   :
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -31370,7 +37090,8 @@ int main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   gl_cv_func_wctob_works=yes
 else
   gl_cv_func_wctob_works=no
@@ -31401,7 +37122,8 @@ printf "%s\n" "$gl_cv_func_wctob_works" >&6; }
 #include <wchar.h>
 
 "
-if test "x$ac_cv_have_decl_wctob" = xyes; then :
+if test "x$ac_cv_have_decl_wctob" = xyes
+then :
   ac_have_decl=1
 else
   ac_have_decl=0
@@ -31515,7 +37237,8 @@ printf "%s\n" "#define GNULIB_TEST_WCTOMB 1" >>confdefs.h
 
 
 # Check whether --enable-gcc-warnings was given.
-if test "${enable_gcc_warnings+set}" = set; then :
+if test ${enable_gcc_warnings+y}
+then :
   enableval=$enable_gcc_warnings; case $enableval in
      yes|no) ;;
      *)      as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;;
 
 
 if test "$gl_gcc_warnings" = yes; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5
+printf %s "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; }
+if test ${gl_cv_warn_c__Werror__Wunknown_warning_option+y}
+then :
+  printf %s "(cached) " >&6
+else
+
+  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
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  gl_cv_warn_c__Werror__Wunknown_warning_option=yes
+else
+  gl_cv_warn_c__Werror__Wunknown_warning_option=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    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__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
+  gl_unknown_warnings_are_errors=
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5
 printf %s "checking whether C compiler handles -Werror... " >&6; }
-if ${gl_cv_warn_c__Werror+:} false; then :
+if test ${gl_cv_warn_c__Werror+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Werror"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Werror=yes
 else
   gl_cv_warn_c__Werror=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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__Werror" >&5
 printf "%s\n" "$gl_cv_warn_c__Werror" >&6; }
-if test "x$gl_cv_warn_c__Werror" = xyes; then :
+if test "x$gl_cv_warn_c__Werror" = xyes
+then :
   as_fn_append WERROR_CFLAGS " -Werror"
 fi
 
@@ -31607,7 +37375,8 @@ fi
 
             { 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 ${gl_cv_cc_nomfi_supported+:} false; then :
+    if test ${gl_cv_cc_nomfi_supported+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31617,14 +37386,15 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_cc_nomfi_supported=yes
 else
   gl_cv_cc_nomfi_supported=no
@@ -31639,7 +37409,8 @@ printf "%s\n" "$gl_cv_cc_nomfi_supported" >&6; }
     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 ${gl_cv_cc_nomfi_needed+:} false; then :
+      if test ${gl_cv_cc_nomfi_needed+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31654,14 +37425,15 @@ void f (void)
                }
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_cc_nomfi_needed=no
 else
   gl_cv_cc_nomfi_needed=yes
@@ -31677,7 +37449,8 @@ printf "%s\n" "$gl_cv_cc_nomfi_needed" >&6; }
 
                 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5
 printf %s "checking whether -Wuninitialized is supported... " >&6; }
-    if ${gl_cv_cc_uninitialized_supported+:} false; then :
+    if test ${gl_cv_cc_uninitialized_supported+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -31687,14 +37460,15 @@ else
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   gl_cv_cc_uninitialized_supported=yes
 else
   gl_cv_cc_uninitialized_supported=no
@@ -31709,28 +37483,43 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
   fi
 
   # List all gcc warning categories.
+  # To compare this list to your installed GCC's, run this Bash command:
+  #
+  # comm -3 \
+  #  <(sed -n 's/^  *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \
+  #  <(gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort |
+  #      grep -v -x -f <(
+  #         awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec))
+
   gl_manywarn_set=
   for gl_manywarn_item in \
     -W \
     -Wabi \
     -Waddress \
+    -Waggressive-loop-optimizations \
     -Wall \
-    -Warray-bounds \
     -Wattributes \
     -Wbad-function-cast \
+    -Wbool-compare \
     -Wbuiltin-macro-redefined \
     -Wcast-align \
     -Wchar-subscripts \
+    -Wchkp \
     -Wclobbered \
     -Wcomment \
     -Wcomments \
     -Wcoverage-mismatch \
     -Wcpp \
+    -Wdate-time \
     -Wdeprecated \
     -Wdeprecated-declarations \
+    -Wdesignated-init \
     -Wdisabled-optimization \
+    -Wdiscarded-array-qualifiers \
+    -Wdiscarded-qualifiers \
     -Wdiv-by-zero \
     -Wdouble-promotion \
+    -Wduplicated-cond \
     -Wempty-body \
     -Wendif-labels \
     -Wenum-compare \
@@ -31739,39 +37528,47 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     -Wformat-extra-args \
     -Wformat-nonliteral \
     -Wformat-security \
+    -Wformat-signedness \
     -Wformat-y2k \
     -Wformat-zero-length \
-    -Wformat=2 \
+    -Wframe-address \
     -Wfree-nonheap-object \
+    -Whsa \
+    -Wignored-attributes \
     -Wignored-qualifiers \
     -Wimplicit \
     -Wimplicit-function-declaration \
     -Wimplicit-int \
+    -Wincompatible-pointer-types \
     -Winit-self \
     -Winline \
+    -Wint-conversion \
     -Wint-to-pointer-cast \
     -Winvalid-memory-model \
     -Winvalid-pch \
     -Wjump-misses-init \
+    -Wlogical-not-parentheses \
     -Wlogical-op \
     -Wmain \
     -Wmaybe-uninitialized \
+    -Wmemset-transposed-args \
+    -Wmisleading-indentation \
     -Wmissing-braces \
     -Wmissing-declarations \
     -Wmissing-field-initializers \
-    -Wmissing-format-attribute \
     -Wmissing-include-dirs \
-    -Wmissing-noreturn \
     -Wmissing-parameter-type \
     -Wmissing-prototypes \
-    -Wmudflap \
     -Wmultichar \
     -Wnarrowing \
     -Wnested-externs \
     -Wnonnull \
-    -Wnormalized=nfc \
+    -Wnonnull-compare \
+    -Wnull-dereference \
+    -Wodr \
     -Wold-style-declaration \
     -Wold-style-definition \
+    -Wopenmp-simd \
     -Woverflow \
     -Woverlength-strings \
     -Woverride-init \
@@ -31782,9 +37579,15 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     -Wpointer-sign \
     -Wpointer-to-int-cast \
     -Wpragmas \
+    -Wreturn-local-addr \
     -Wreturn-type \
+    -Wscalar-storage-order \
     -Wsequence-point \
     -Wshadow \
+    -Wshift-count-negative \
+    -Wshift-count-overflow \
+    -Wshift-negative-value \
+    -Wsizeof-array-argument \
     -Wsizeof-pointer-memaccess \
     -Wstack-protector \
     -Wstrict-aliasing \
@@ -31794,16 +37597,19 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     -Wsuggest-attribute=format \
     -Wsuggest-attribute=noreturn \
     -Wsuggest-attribute=pure \
+    -Wsuggest-final-methods \
+    -Wsuggest-final-types \
     -Wswitch \
+    -Wswitch-bool \
     -Wswitch-default \
     -Wsync-nand \
     -Wsystem-headers \
+    -Wtautological-compare \
     -Wtrampolines \
     -Wtrigraphs \
     -Wtype-limits \
     -Wuninitialized \
     -Wunknown-pragmas \
-    -Wunreachable-code \
     -Wunsafe-loop-optimizations \
     -Wunused \
     -Wunused-but-set-parameter \
@@ -31827,6 +37633,24 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
     gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
   done
 
+  # gcc --help=warnings outputs an unusual form for these options; list
+  # them here so that the above 'comm' command doesn't report a false match.
+  gl_manywarn_set="$gl_manywarn_set -Warray-bounds=2"
+  gl_manywarn_set="$gl_manywarn_set -Wnormalized=nfc"
+  gl_manywarn_set="$gl_manywarn_set -Wshift-overflow=2"
+  gl_manywarn_set="$gl_manywarn_set -Wunused-const-variable=2"
+
+  # These are needed for older GCC versions.
+  if test -n "$GCC"; then
+    case `($CC --version) 2>/dev/null` in
+      'gcc (GCC) '[0-3].* | \
+      'gcc (GCC) '4.[0-7].*)
+        gl_manywarn_set="$gl_manywarn_set -fdiagnostics-show-option"
+        gl_manywarn_set="$gl_manywarn_set -funit-at-a-time"
+          ;;
+    esac
+  fi
+
   # Disable specific options as needed.
   if test "$gl_cv_cc_nomfi_needed" = yes; then
     gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
@@ -31854,215 +37678,249 @@ printf "%s\n" "$gl_cv_cc_uninitialized_supported" >&6; }
   ws=$gl_warn_set
 
   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" | $as_tr_sh`
+gl_positive="$w"
+case $gl_positive in
+  -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;;
+esac
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5
 printf %s "checking whether C compiler handles $w... " >&6; }
-if eval \${$as_gl_Warn+:} false; then :
+if eval test \${$as_gl_Warn+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " $w"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $gl_positive"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$as_gl_Warn=yes"
 else
   eval "$as_gl_Warn=no"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   CFLAGS="$gl_save_compiler_FLAGS"
 
 fi
 eval ac_res=\$$as_gl_Warn
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-if eval test \"x\$"$as_gl_Warn"\" = x"yes"; then :
+if eval test \"x\$"$as_gl_Warn"\" = x"yes"
+then :
   as_fn_append WARN_CFLAGS " $w"
 fi
 
 
   done
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5
 printf %s "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; }
-if ${gl_cv_warn_c__Wno_missing_field_initializers+:} false; then :
+if test ${gl_cv_warn_c__Wno_missing_field_initializers+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-missing-field-initializers"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wmissing-field-initializers"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_missing_field_initializers=yes
 else
   gl_cv_warn_c__Wno_missing_field_initializers=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_missing_field_initializers" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_missing_field_initializers" >&6; }
-if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-missing-field-initializers"
 fi
 
  # We need this one
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-sign-compare" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-sign-compare" >&5
 printf %s "checking whether C compiler handles -Wno-sign-compare... " >&6; }
-if ${gl_cv_warn_c__Wno_sign_compare+:} false; then :
+if test ${gl_cv_warn_c__Wno_sign_compare+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-sign-compare"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wsign-compare"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_sign_compare=yes
 else
   gl_cv_warn_c__Wno_sign_compare=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_sign_compare" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_sign_compare" >&6; }
-if test "x$gl_cv_warn_c__Wno_sign_compare" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_sign_compare" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-sign-compare"
 fi
 
      # Too many warnings for now
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-pointer-sign" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-pointer-sign" >&5
 printf %s "checking whether C compiler handles -Wno-pointer-sign... " >&6; }
-if ${gl_cv_warn_c__Wno_pointer_sign+:} false; then :
+if test ${gl_cv_warn_c__Wno_pointer_sign+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-pointer-sign"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wpointer-sign"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_pointer_sign=yes
 else
   gl_cv_warn_c__Wno_pointer_sign=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_pointer_sign" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_pointer_sign" >&6; }
-if test "x$gl_cv_warn_c__Wno_pointer_sign" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_pointer_sign" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-pointer-sign"
 fi
 
      # Too many warnings for now
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-parameter" >&5
 printf %s "checking whether C compiler handles -Wno-unused-parameter... " >&6; }
-if ${gl_cv_warn_c__Wno_unused_parameter+:} false; then :
+if test ${gl_cv_warn_c__Wno_unused_parameter+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-unused-parameter"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wunused-parameter"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_unused_parameter=yes
 else
   gl_cv_warn_c__Wno_unused_parameter=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_unused_parameter" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_unused_parameter" >&6; }
-if test "x$gl_cv_warn_c__Wno_unused_parameter" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_unused_parameter" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-unused-parameter"
 fi
 
  # Too many warnings for now
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-nonliteral" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-format-nonliteral" >&5
 printf %s "checking whether C compiler handles -Wno-format-nonliteral... " >&6; }
-if ${gl_cv_warn_c__Wno_format_nonliteral+:} false; then :
+if test ${gl_cv_warn_c__Wno_format_nonliteral+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-format-nonliteral"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wformat-nonliteral"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_format_nonliteral=yes
 else
   gl_cv_warn_c__Wno_format_nonliteral=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_format_nonliteral" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_format_nonliteral" >&6; }
-if test "x$gl_cv_warn_c__Wno_format_nonliteral" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_format_nonliteral" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-format-nonliteral"
 fi
 
 
   # In spite of excluding -Wlogical-op above, it is enabled, as of
   # gcc 4.5.0 20090517, and it provokes warnings in cat.c, dd.c, truncate.c
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-logical-op" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-logical-op" >&5
 printf %s "checking whether C compiler handles -Wno-logical-op... " >&6; }
-if ${gl_cv_warn_c__Wno_logical_op+:} false; then :
+if test ${gl_cv_warn_c__Wno_logical_op+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -Wno-logical-op"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wlogical-op"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__Wno_logical_op=yes
 else
   gl_cv_warn_c__Wno_logical_op=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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_logical_op" >&5
 printf "%s\n" "$gl_cv_warn_c__Wno_logical_op" >&6; }
-if test "x$gl_cv_warn_c__Wno_logical_op" = xyes; then :
+if test "x$gl_cv_warn_c__Wno_logical_op" = xyes
+then :
   as_fn_append WARN_CFLAGS " -Wno-logical-op"
 fi
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5
 printf %s "checking whether C compiler handles -fdiagnostics-show-option... " >&6; }
-if ${gl_cv_warn_c__fdiagnostics_show_option+:} false; then :
+if test ${gl_cv_warn_c__fdiagnostics_show_option+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -fdiagnostics-show-option"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fdiagnostics-show-option"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__fdiagnostics_show_option=yes
 else
   gl_cv_warn_c__fdiagnostics_show_option=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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__fdiagnostics_show_option" >&5
 printf "%s\n" "$gl_cv_warn_c__fdiagnostics_show_option" >&6; }
-if test "x$gl_cv_warn_c__fdiagnostics_show_option" = xyes; then :
+if test "x$gl_cv_warn_c__fdiagnostics_show_option" = xyes
+then :
   as_fn_append WARN_CFLAGS " -fdiagnostics-show-option"
 fi
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -funit-at-a-time" >&5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -funit-at-a-time" >&5
 printf %s "checking whether C compiler handles -funit-at-a-time... " >&6; }
-if ${gl_cv_warn_c__funit_at_a_time+:} false; then :
+if test ${gl_cv_warn_c__funit_at_a_time+y}
+then :
   printf %s "(cached) " >&6
 else
 
   gl_save_compiler_FLAGS="$CFLAGS"
-  as_fn_append CFLAGS " -funit-at-a-time"
+  as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -funit-at-a-time"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
-main ()
+main (void)
 {
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gl_cv_warn_c__funit_at_a_time=yes
 else
   gl_cv_warn_c__funit_at_a_time=no
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    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__funit_at_a_time" >&5
 printf "%s\n" "$gl_cv_warn_c__funit_at_a_time" >&6; }
-if test "x$gl_cv_warn_c__funit_at_a_time" = xyes; then :
+if test "x$gl_cv_warn_c__funit_at_a_time" = xyes
+then :
   as_fn_append WARN_CFLAGS " -funit-at-a-time"
 fi
 
@@ -32195,6 +38068,7 @@ printf "%s\n" "#define GNULIB_PORTCHECK 1" >>confdefs.h
   nw="$nw -Wunused-macros"
   nw="$nw -Wmissing-prototypes"
   nw="$nw -Wold-style-definition"
+  nw="$nw -Wsuggest-attribute=pure"
 
   gl_warn_set=
   set x $WARN_CFLAGS; shift
@@ -32215,7 +38089,8 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
 printf %s "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
+if test ${ac_cv_c_inline+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_cv_c_inline=no
@@ -32229,7 +38104,8 @@ $ac_kw foo_t foo () {return 0; }
 #endif
 
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_inline=$ac_kw
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -32258,33 +38134,83 @@ esac
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable-length arrays" >&5
 printf %s "checking for variable-length arrays... " >&6; }
-if ${ac_cv_c_vararrays+:} false; then :
+if test ${ac_cv_c_vararrays+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#ifdef __STDC_NO_VLA__
+       defined
+       #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "defined" >/dev/null 2>&1
+then :
+  ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'
+else
+  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:
+                 http://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];
+                }
+
+                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 ()
+main (void)
 {
-static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];
+
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_c_vararrays=yes
 else
   ac_cv_c_vararrays=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+rm -rf conftest*
+
+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_c_vararrays" = yes; then
 
 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
 
 
@@ -32296,7 +38222,8 @@ printf "%s\n" "#define DEFAULT_EDITOR_PROGRAM \"ed\"" >>confdefs.h
 set dummy pr; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PR_PROGRAM+:} false; then :
+if test ${ac_cv_path_PR_PROGRAM+y}
+then :
   printf %s "(cached) " >&6
 else
   case $PR_PROGRAM in
@@ -32344,7 +38271,8 @@ _ACEOF
 
 
 ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
-if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
@@ -32354,7 +38282,8 @@ _ACEOF
 fi
 
 ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default"
-if test "x$ac_cv_member_struct_stat_st_rdev" = xyes; then :
+if test "x$ac_cv_member_struct_stat_st_rdev" = xyes
+then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_RDEV 1
@@ -32368,7 +38297,8 @@ 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`
 { 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 \${$as_ac_Header+:} false; then :
+if eval test \${$as_ac_Header+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -32377,7 +38307,7 @@ else
 #include <$ac_hdr>
 
 int
-main ()
+main (void)
 {
 if ((DIR *) 0)
 return 0;
@@ -32385,7 +38315,8 @@ return 0;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   eval "$as_ac_Header=yes"
 else
   eval "$as_ac_Header=no"
@@ -32395,7 +38326,8 @@ fi
 eval ac_res=\$$as_ac_Header
               { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 printf "%s\n" "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+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
 _ACEOF
@@ -32408,7 +38340,8 @@ done
 if test $ac_header_dirent = dirent.h; then
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 printf %s "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
+if test ${ac_cv_search_opendir+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -32423,30 +38356,34 @@ extern "C"
 #endif
 char opendir ();
 int
-main ()
+main (void)
 {
 return opendir ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' dir; do
+for ac_lib in '' dir
+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 :
+  if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_search_opendir=$ac_res
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
+  if test ${ac_cv_search_opendir+y}
+then :
   break
 fi
 done
-if ${ac_cv_search_opendir+:} false; then :
+if test ${ac_cv_search_opendir+y}
+then :
 
 else
   ac_cv_search_opendir=no
@@ -32457,7 +38394,8 @@ fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 printf "%s\n" "$ac_cv_search_opendir" >&6; }
 ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
@@ -32465,7 +38403,8 @@ fi
 else
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 printf %s "checking for library containing opendir... " >&6; }
-if ${ac_cv_search_opendir+:} false; then :
+if test ${ac_cv_search_opendir+y}
+then :
   printf %s "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -32480,30 +38419,34 @@ extern "C"
 #endif
 char opendir ();
 int
-main ()
+main (void)
 {
 return opendir ();
   ;
   return 0;
 }
 _ACEOF
-for ac_lib in '' x; do
+for ac_lib in '' x
+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 :
+  if ac_fn_c_try_link "$LINENO"
+then :
   ac_cv_search_opendir=$ac_res
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if ${ac_cv_search_opendir+:} false; then :
+  if test ${ac_cv_search_opendir+y}
+then :
   break
 fi
 done
-if ${ac_cv_search_opendir+:} false; then :
+if test ${ac_cv_search_opendir+y}
+then :
 
 else
   ac_cv_search_opendir=no
@@ -32514,7 +38457,8 @@ fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 printf "%s\n" "$ac_cv_search_opendir" >&6; }
 ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then :
+if test "$ac_res" != no
+then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
@@ -32523,7 +38467,8 @@ fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5
 printf %s "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
-if ${ac_cv_header_sys_wait_h+:} false; then :
+if test ${ac_cv_header_sys_wait_h+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -32538,7 +38483,7 @@ else
 #endif
 
 int
-main ()
+main (void)
 {
   int s;
   wait (&s);
@@ -32547,7 +38492,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
+if ac_fn_c_try_compile "$LINENO"
+then :
   ac_cv_header_sys_wait_h=yes
 else
   ac_cv_header_sys_wait_h=no
@@ -32563,7 +38509,8 @@ printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
 fi
 
 ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
-if test "x$ac_cv_type_pid_t" = xyes; then :
+if test "x$ac_cv_type_pid_t" = xyes
+then :
 
 else
 
@@ -32585,7 +38532,8 @@ if test $ac_cv_func_sigprocmask = no; then
   for ac_func in sigblock
 do :
   ac_fn_c_check_func "$LINENO" "sigblock" "ac_cv_func_sigblock"
-if test "x$ac_cv_func_sigblock" = xyes; then :
+if test "x$ac_cv_func_sigblock" = xyes
+then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_SIGBLOCK 1
 _ACEOF
@@ -32596,10 +38544,12 @@ done
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether closedir returns void" >&5
 printf %s "checking whether closedir returns void... " >&6; }
-if ${ac_cv_func_closedir_void+:} false; then :
+if test ${ac_cv_func_closedir_void+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_func_closedir_void=yes
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -32611,14 +38561,15 @@ int closedir ();
 #endif
 
 int
-main ()
+main (void)
 {
 return closedir (opendir (".")) != 0;
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_closedir_void=no
 else
   ac_cv_func_closedir_void=yes
@@ -32636,44 +38587,30 @@ printf "%s\n" "#define CLOSEDIR_VOID 1" >>confdefs.h
 
 fi
 
-for ac_header in vfork.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default"
-if test "x$ac_cv_header_vfork_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_VFORK_H 1
-_ACEOF
 
-fi
 
-done
 
-for ac_func in fork vfork
-do :
-  as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
-fi
-done
+
+
+
 
 if test "x$ac_cv_func_fork" = xyes; then
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
 printf %s "checking for working fork... " >&6; }
-if ${ac_cv_func_fork_works+:} false; then :
+if test ${ac_cv_func_fork_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_func_fork_works=cross
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
-main ()
+main (void)
 {
 
          /* By Ruediger Kuhlmann. */
@@ -32683,7 +38620,8 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_fork_works=yes
 else
   ac_cv_func_fork_works=no
@@ -32716,10 +38654,12 @@ ac_cv_func_vfork_works=$ac_cv_func_vfork
 if test "x$ac_cv_func_vfork" = xyes; then
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
 printf %s "checking for working vfork... " >&6; }
-if ${ac_cv_func_vfork_works+:} false; then :
+if test ${ac_cv_func_vfork_works+y}
+then :
   printf %s "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then :
+  if test "$cross_compiling" = yes
+then :
   ac_cv_func_vfork_works=cross
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -32763,7 +38703,7 @@ sparc_address_test (int arg)
 }
 
 int
-main ()
+main (void)
 {
   pid_t parent = getpid ();
   pid_t child;
@@ -32830,7 +38770,8 @@ main ()
   }
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   ac_cv_func_vfork_works=yes
 else
   ac_cv_func_vfork_works=no
@@ -32883,7 +38824,8 @@ test -f $srcdir/.tarball-version \
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 printf %s "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then :
+if test ${enable_nls+y}
+then :
   enableval=$enable_nls; USE_NLS=$enableval
 else
   USE_NLS=yes
@@ -32895,7 +38837,7 @@ printf "%s\n" "$USE_NLS" >&6; }
 
 
 
-      GETTEXT_MACRO_VERSION=0.18
+      GETTEXT_MACRO_VERSION=0.19
 
 
 
@@ -32931,7 +38873,8 @@ rm -f conf$$.file
 set dummy msgfmt; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGFMT+:} false; then :
+if test ${ac_cv_path_MSGFMT+y}
+then :
   printf %s "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -32972,7 +38915,8 @@ fi
 set dummy gmsgfmt; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GMSGFMT+:} false; then :
+if test ${ac_cv_path_GMSGFMT+y}
+then :
   printf %s "(cached) " >&6
 else
   case $GMSGFMT in
@@ -33057,7 +39001,8 @@ rm -f conf$$.file
 set dummy xgettext; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XGETTEXT+:} false; then :
+if test ${ac_cv_path_XGETTEXT+y}
+then :
   printf %s "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -33134,7 +39079,8 @@ rm -f conf$$.file
 set dummy msgmerge; ac_word=$2
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 printf %s "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGMERGE+:} false; then :
+if test ${ac_cv_path_MSGMERGE+y}
+then :
   printf %s "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -33206,7 +39152,8 @@ fi
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 printf %s "checking for CFPreferencesCopyAppValue... " >&6; }
-if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+if test ${gt_cv_func_CFPreferencesCopyAppValue+y}
+then :
   printf %s "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -33215,14 +39162,15 @@ else
 /* end confdefs.h.  */
 #include <CoreFoundation/CFPreferences.h>
 int
-main ()
+main (void)
 {
 CFPreferencesCopyAppValue(NULL, NULL)
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gt_cv_func_CFPreferencesCopyAppValue=yes
 else
   gt_cv_func_CFPreferencesCopyAppValue=no
@@ -33240,7 +39188,8 @@ printf "%s\n" "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
   fi
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
 printf %s "checking for CFLocaleCopyCurrent... " >&6; }
-if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+if test ${gt_cv_func_CFLocaleCopyCurrent+y}
+then :
   printf %s "(cached) " >&6
 else
   gt_save_LIBS="$LIBS"
@@ -33249,14 +39198,15 @@ else
 /* end confdefs.h.  */
 #include <CoreFoundation/CFLocale.h>
 int
-main ()
+main (void)
 {
 CFLocaleCopyCurrent();
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   gt_cv_func_CFLocaleCopyCurrent=yes
 else
   gt_cv_func_CFLocaleCopyCurrent=no
@@ -33316,7 +39266,8 @@ typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
 
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
 printf %s "checking for GNU gettext in libc... " >&6; }
-if eval \${$gt_func_gnugettext_libc+:} false; then :
+if eval test \${$gt_func_gnugettext_libc+y}
+then :
   printf %s "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -33328,7 +39279,7 @@ extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;
 
 int
-main ()
+main (void)
 {
 
 bindtextdomain ("", "");
@@ -33338,7 +39289,8 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_b
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$gt_func_gnugettext_libc=yes"
 else
   eval "$gt_func_gnugettext_libc=no"
@@ -33383,7 +39335,8 @@ printf "%s\n" "$ac_res" >&6; }
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
 printf %s "checking for iconv... " >&6; }
-if ${am_cv_func_iconv+:} false; then :
+if test ${am_cv_func_iconv+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -33396,7 +39349,7 @@ else
 #include <iconv.h>
 
 int
-main ()
+main (void)
 {
 iconv_t cd = iconv_open("","");
            iconv(cd,NULL,NULL,NULL,NULL);
@@ -33405,7 +39358,8 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   am_cv_func_iconv=yes
 fi
 rm -f core conftest.err conftest.$ac_objext \
@@ -33420,7 +39374,7 @@ rm -f core conftest.err conftest.$ac_objext \
 #include <iconv.h>
 
 int
-main ()
+main (void)
 {
 iconv_t cd = iconv_open("","");
              iconv(cd,NULL,NULL,NULL,NULL);
@@ -33429,7 +39383,8 @@ iconv_t cd = iconv_open("","");
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
 fi
@@ -33444,7 +39399,8 @@ printf "%s\n" "$am_cv_func_iconv" >&6; }
   if test "$am_cv_func_iconv" = yes; then
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
 printf %s "checking for working iconv... " >&6; }
-if ${am_cv_func_iconv_works+:} false; then :
+if test ${am_cv_func_iconv_works+y}
+then :
   printf %s "(cached) " >&6
 else
 
@@ -33452,36 +39408,43 @@ else
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      if test "$cross_compiling" = yes; then :
-
-         case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        if test "$cross_compiling" = yes
+then :
+  case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
 #include <string.h>
-int main ()
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+
+int
+main (void)
 {
-  int result = 0;
+int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -33494,14 +39457,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -33513,14 +39476,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304";
+        static ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = 1;
         char *outptr = buf;
         size_t outbytesleft = 1;
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -33533,14 +39496,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -33560,17 +39523,21 @@ int main ()
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
     result |= 16;
   return result;
+
+  ;
+  return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
+if ac_fn_c_try_run "$LINENO"
+then :
   am_cv_func_iconv_works=yes
-else
-  am_cv_func_iconv_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
 
 fi
@@ -33624,7 +39591,8 @@ printf "%s\n" "$LIBICONV" >&6; }
 
 
 # Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then :
+if test ${with_libintl_prefix+y}
+then :
   withval=$with_libintl_prefix;
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -34065,7 +40033,8 @@ fi
 
           { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 printf %s "checking for GNU gettext in libintl... " >&6; }
-if eval \${$gt_func_gnugettext_libintl+:} false; then :
+if eval test \${$gt_func_gnugettext_libintl+y}
+then :
   printf %s "(cached) " >&6
 else
   gt_save_CPPFLAGS="$CPPFLAGS"
@@ -34085,7 +40054,7 @@ extern
 const char *_nl_expand_alias (const char *);
 
 int
-main ()
+main (void)
 {
 
 bindtextdomain ("", "");
@@ -34095,7 +40064,8 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   eval "$gt_func_gnugettext_libintl=yes"
 else
   eval "$gt_func_gnugettext_libintl=no"
@@ -34117,7 +40087,7 @@ extern
 const char *_nl_expand_alias (const char *);
 
 int
-main ()
+main (void)
 {
 
 bindtextdomain ("", "");
@@ -34127,7 +40097,8 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
+if ac_fn_c_try_link "$LINENO"
+then :
   LIBINTL="$LIBINTL $LIBICONV"
                  LTLIBINTL="$LTLIBINTL $LTLIBICONV"
                  eval "$gt_func_gnugettext_libintl=yes"
@@ -34311,7 +40282,7 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;}
      /^ac_cv_env_/b end
      t clear
      :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
      t end
      s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
      :end' >>confcache
 
 
 
+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
+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
+
     gltests_libobjs=
     gltests_ltlibobjs=
     if test -n "$gltests_LIBOBJS"; then
@@ -34519,7 +40499,8 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -34537,7 +40518,7 @@ fi
 
 
 # The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
+if ${PATH_SEPARATOR+false} :; then
   PATH_SEPARATOR=:
   (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
     (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
@@ -34590,7 +40571,7 @@ fi
 # suppresses any "Segmentation fault" message there.  '((' could
 # trigger a bug in pdksh 5.2.14.
 for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
+do eval test \${$as_var+y} \
   && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
@@ -34656,7 +40637,8 @@ as_unset=as_fn_unset
 # advantage of any shell optimizations that allow amortized linear growth over
 # repeated appends, instead of the typical quadratic growth present in naive
 # implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
   eval 'as_fn_append ()
   {
     eval $1+=\$2
@@ -34673,7 +40655,8 @@ fi # as_fn_append
 # Perform arithmetic evaluation on the ARGs, and store the result in the
 # global $as_val. Take advantage of shells that can avoid forks. The arguments
 # must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
   eval 'as_fn_arith ()
   {
     as_val=$(( $* ))
@@ -34856,8 +40839,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.3, which was
-generated by GNU Autoconf 2.69.79-0bdae.  Invocation command line was
+This file was extended by GNU diffutils $as_me 3.4, which was
+generated by GNU Autoconf 2.69.147-5ad35.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -34928,11 +40911,11 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`printf "%s\n" "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GNU diffutils config.status 3.3
-configured by $0, generated by GNU Autoconf 2.69.79-0bdae,
+GNU diffutils config.status 3.4
+configured by $0, generated by GNU Autoconf 2.69.147-5ad35,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C)  Free Software Foundation, Inc.
+Copyright (C) 2015 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -35047,7 +41030,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #
 # INIT-COMMANDS
 #
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
 GNUmakefile=$GNUmakefile
 # Capture the value of obsolete ALL_LINGUAS because we need it to compute
     # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
@@ -35088,10 +41071,10 @@ done
 # We use the long form for the default assignment because of an extremely
 # bizarre bug on SunOS 4.1.3.
 if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+  test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+  test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+  test ${CONFIG_LINKS+y} || CONFIG_LINKS=$config_links
+  test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
@@ -35708,29 +41691,35 @@ printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
   # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
+  # TODO: see whether this extra hack can be removed once we start
+  # requiring Autoconf 2.70 or later.
+  case $CONFIG_FILES in #(
+  *\'*) :
+    eval set x "$CONFIG_FILES" ;; #(
+  *) :
+    set x $CONFIG_FILES ;; #(
+  *) :
+     ;;
+esac
   shift
-  for mf
+  # Used to flag and report bootstrapping failures.
+  am_rc=0
+  for am_mf
   do
     # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
+    am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile which includes
+    # dependency-tracking related rules and includes.
+    # Grep'ing the whole file directly is not great: AIX grep has a line
     # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$mf" : 'X\(//\)[^/]' \| \
-        X"$mf" : 'X\(//\)$' \| \
-        X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$mf" |
+    sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+      || continue
+    am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$am_mf" : 'X\(//\)[^/]' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$am_mf" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
            s//\1/
            q
@@ -35748,53 +41737,48 @@ printf "%s\n" X"$mf" |
            q
          }
          s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$file" : 'X\(//\)[^/]' \| \
-        X"$file" : 'X\(//\)$' \| \
-        X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
+    am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+        X"$am_mf" : 'X\(//\)$' \| \
+        X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$am_mf" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
            s//\1/
            q
          }
-         /^X\(\/\/\)$/{
+         /^X\/\(\/\/\)$/{
            s//\1/
            q
          }
-         /^X\(\/\).*/{
+         /^X\/\(\/\).*/{
            s//\1/
            q
          }
          s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
+    { echo "$as_me:$LINENO: cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles" >&5
+   (cd "$am_dirpart" \
+      && sed -e '/# am--include-marker/d' "$am_filepart" \
+        | $MAKE -f - am--depfiles) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (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;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+    for automatic dependency tracking.  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; }
+  fi
+  { am_dirpart=; unset am_dirpart;}
+  { am_filepart=; unset am_filepart;}
+  { am_mf=; unset am_mf;}
+  { am_rc=; unset am_rc;}
+  rm -f conftest-deps.mk
 }
  ;;
     "po-directories":C)
index aea40fc..a473d66 100644 (file)
@@ -1,7 +1,7 @@
 # Configure template for GNU Diffutils.
 
-# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013 Free Software
-# Foundation, Inc.
+# Copyright (C) 1994-1995, 1998, 2001-2002, 2004, 2006, 2009-2013, 2015-2016
+# Free Software Foundation, Inc.
 
 # This 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,13 +26,15 @@ AC_CONFIG_SRCDIR([src/diff.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
 
-AM_INIT_AUTOMAKE([1.11 dist-xz no-dist-gzip color-tests parallel-tests])
+AM_INIT_AUTOMAKE([1.11 dist-xz no-dist-gzip subdir-objects
+                       color-tests parallel-tests])
 AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
 
 AC_CONFIG_HEADER([lib/config.h:lib/config.hin])
 
 AC_PROG_AWK
 AC_PROG_CC
+AM_PROG_CC_C_O
 AM_MISSING_PROG([HELP2MAN], [help2man])
 AC_PROG_RANLIB
 gl_EARLY
@@ -121,6 +123,7 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Wunused-macros"
   nw="$nw -Wmissing-prototypes"
   nw="$nw -Wold-style-definition"
+  nw="$nw -Wsuggest-attribute=pure"
   gl_MANYWARN_COMPLEMENT([GNULIB_WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
   AC_SUBST([GNULIB_WARN_CFLAGS])
 fi
@@ -161,7 +164,7 @@ test -f $srcdir/.tarball-version \
   || SRC_VERSION_C=../src/version.c
 
 AM_GNU_GETTEXT([external], [need-ngettext])
-AM_GNU_GETTEXT_VERSION([0.18.2])
+AM_GNU_GETTEXT_VERSION([0.19.2])
 XGETTEXT="AWK='$AWK' \$(SHELL) \$(top_srcdir)/exgettext $XGETTEXT"
 
 AC_CONFIG_FILES([
index dd30db2..06d8d90 100644 (file)
@@ -161,6 +161,7 @@ my-distcheck: $(DIST_ARCHIVES) $(local-check)
        )
        (cd $(t) && mv $(distdir) $(distdir).old        \
          && $(amtar_extract_) - ) < $(preferred_tarball_)
+       find $(t)/$(distdir).old $(t)/$(distdir) -name .deps | xargs rm -rf
        diff -ur $(t)/$(distdir).old $(t)/$(distdir)
        -rm -rf $(t)
        rmdir $(tmpdir)/$(PACKAGE) $(tmpdir)
index 286f7a4..4f738c6 100644 (file)
@@ -1,6 +1,6 @@
 # Makefile for GNU diffutils documentation.
 
-# Copyright (C) 2001-2002, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 56e2a7b..23a7fae 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 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 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This 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/>.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -66,17 +104,14 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(diffutils_TEXINFOS) $(top_srcdir)/build-aux/mdate-sh \
-       $(srcdir)/version.texi $(srcdir)/stamp-vti \
-       $(top_srcdir)/build-aux/texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -84,9 +119,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -95,14 +131,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -118,36 +155,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -160,6 +206,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \
+       $(srcdir)/stamp-vti $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/lib/config.h
 CONFIG_CLEAN_FILES =
@@ -253,6 +301,9 @@ am__uninstall_files_from_dir = { \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(diffutils_TEXINFOS) $(srcdir)/Makefile.in \
+       $(top_srcdir)/build-aux/mdate-sh \
+       $(top_srcdir)/build-aux/texinfo.tex
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -300,13 +351,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -360,6 +415,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -369,13 +427,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -431,6 +494,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -439,6 +503,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -448,6 +513,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -455,14 +522,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -494,6 +567,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -556,6 +630,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -575,6 +651,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -628,6 +706,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -642,6 +721,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -662,6 +742,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -672,6 +753,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -686,6 +768,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -712,17 +795,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -770,6 +860,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -778,6 +869,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -797,11 +889,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -818,6 +913,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -826,6 +925,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -834,14 +934,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -850,6 +955,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -858,9 +964,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -913,14 +1023,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -929,6 +1044,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -957,21 +1073,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -994,9 +1114,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1020,21 +1142,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1053,6 +1180,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1090,11 +1218,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1123,14 +1253,13 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu doc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -1180,15 +1309,16 @@ $(srcdir)/stamp-vti: diffutils.texi $(top_srcdir)/configure
        echo "@set UPDATED $$1 $$2 $$3"; \
        echo "@set UPDATED-MONTH $$2 $$3"; \
        echo "@set EDITION $(VERSION)"; \
-       echo "@set VERSION $(VERSION)") > vti.tmp
-       @cmp -s vti.tmp $(srcdir)/version.texi \
-         || (echo "Updating $(srcdir)/version.texi"; \
-             cp vti.tmp $(srcdir)/version.texi)
-       -@rm -f vti.tmp
+       echo "@set VERSION $(VERSION)") > vti.tmp$$$$ && \
+       (cmp -s vti.tmp$$$$ $(srcdir)/version.texi \
+         || (echo "Updating $(srcdir)/version.texi" && \
+             cp vti.tmp$$$$ $(srcdir)/version.texi.tmp$$$$ && \
+             mv $(srcdir)/version.texi.tmp$$$$ $(srcdir)/version.texi)) && \
+       rm -f vti.tmp$$$$ $(srcdir)/version.texi.$$$$
        @cp $(srcdir)/version.texi $@
 
 mostlyclean-vti:
-       -rm -f vti.tmp
+       -rm -f vti.tmp* $(srcdir)/version.texi.tmp*
 
 maintainer-clean-vti:
        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
@@ -1529,6 +1659,8 @@ uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
        uninstall-dvi-am uninstall-html-am uninstall-info-am \
        uninstall-pdf-am uninstall-ps-am
 
+.PRECIOUS: Makefile
+
 
 # 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 42ee687..09c82e2 100644 (file)
@@ -1,12 +1,12 @@
-This is diffutils.info-t, produced by makeinfo version 4.13 from
+This is diffutils.info-t, produced by makeinfo version 6.1 from
 diffutils.texi.
 
-This manual is for GNU Diffutils (version 3.3, 23 March 2013), 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.4, 4 August 2016), 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-2013 Free
+   Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2016 Free
 Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
@@ -15,7 +15,6 @@ Software Foundation, Inc.
      Foundation; with no Invariant Sections, no Front-Cover Texts, and
      no Back-Cover Texts.  A copy of the license is included in the
      section entitled "GNU Free Documentation License."
-
 INFO-DIR-SECTION Individual utilities
 START-INFO-DIR-ENTRY
 * cmp: (diffutils)Invoking cmp.                 Compare 2 files byte by byte.
@@ -36,12 +35,12 @@ File: diffutils.info-t,  Node: Top,  Next: Overview,  Up: (dir)
 Comparing and Merging Files
 ***************************
 
-This manual is for GNU Diffutils (version 3.3, 23 March 2013), 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.4, 4 August 2016), 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-2013 Free
+   Copyright (C) 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2016 Free
 Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
@@ -59,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.
@@ -93,66 +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 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 Window: (emacs)Other Window, for more information on that
-command.
+   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
+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'
+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.
+'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,
-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 No. 2, 1986, pp. 251-266; and in "A
-File Comparison Program", Webb Miller and Eugene W. Myers,
-`Software--Practice and Experience' Vol. 15 No. 11, 1985, pp. 1025-1040.
-The algorithm was independently discovered as described by E. Ukkonen in
-"Algorithms for Approximate String Matching", `Information and Control'
-Vol. 64, 1985, pp. 100-118.  Unless 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', 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 Torbjo"rn Granlund and David
+   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,
+<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,
+<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,
+pp. 100-118, <http://dx.doi.org/10.1016/S0019-9958(85)80046-2>.  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',
+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 Torbjo"rn Granlund and David
 MacKenzie.
 
-   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.
+   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.
 
 \1f
 File: diffutils.info-t,  Node: Comparison,  Next: Output Formats,  Prev: Overview,  Up: Top
@@ -163,40 +161,45 @@ File: diffutils.info-t,  Node: Comparison,  Next: Output Formats,  Prev: Overvie
 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 differences.  It also provides ways to suppress certain kinds of
+   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 want to know only whether two files are identical, or whether one
-file is a prefix of the other.
+'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.
 
    To illustrate the effect that considering changes byte by byte can
 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
+differ, and it discovers that the files have different sizes, it need
+not read them to do its job.
+
 * Menu:
 
 * Hunks::             Groups of differing lines.
@@ -213,20 +216,20 @@ File: diffutils.info-t,  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".
-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 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:
+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
+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:
 
      1,2d0
      < a
@@ -235,7 +238,7 @@ hunks of 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
@@ -247,11 +250,11 @@ output:
      ---
      > a
 
-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 diff Performance::).
+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
+diff Performance::).
 
 \1f
 File: diffutils.info-t,  Node: White Space,  Next: Blank Lines,  Prev: Hunks,  Up: Comparison
@@ -259,36 +262,36 @@ File: diffutils.info-t,  Node: White Space,  Next: Blank Lines,  Prev: Hunks,  U
 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 differences even if one line has white space where the other
-line has 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:
+   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,
+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:
 
      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
@@ -297,14 +300,14 @@ File: diffutils.info-t,  Node: Blank Lines,  Next: Specified Lines,  Prev: White
 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.
 
      2.  A line is breadthless length.
      -- Euclid, The Elements, I
-   is considered identical to a file containing
+is considered identical to a file containing
      1.  A point is that which has no part.
      2.  A line is breadthless length.
 
@@ -314,8 +317,8 @@ 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-t,  Node: Specified Lines,  Next: Case Folding,  Prev: Blank Lines,  Up: Comparison
@@ -323,21 +326,21 @@ File: diffutils.info-t,  Node: Specified Lines,  Next: Case Folding,  Prev: Blan
 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
+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 with a digit.
+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
@@ -346,10 +349,10 @@ File: diffutils.info-t,  Node: Case Folding,  Next: Brief,  Prev: Specified Line
 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-t,  Node: Brief,  Next: Binary,  Prev: Case Folding,  Up: Comparison
@@ -360,24 +363,24 @@ File: diffutils.info-t,  Node: Brief,  Next: Binary,  Prev: Case Folding,  Up: C
 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') option selects this output format.
+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
@@ -386,87 +389,81 @@ File: diffutils.info-t,  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
-comparisons are usually not meaningful for binary files.
+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
-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')
+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')
 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 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.
+contain text, they will probably contain few newline characters, and the
+'diff' output will consist of hunks showing differences between long
+lines of whatever characters the files contain.
 
-   Normally, differing binary files count as trouble because the
-resulting `diff' output does not capture all the differences.  This
-trouble causes `diff' to exit with status 2.  However, this trouble
-cannot occur with the `--text' (`-a') option, or with the `--brief'
-(`-q') option, as these options both cause `diff' to generate a form of
-output that represents differences as requested.
+   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
-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 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 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 bytes.  *Note Invoking cmp::, for more information.
-
-   If `diff3' thinks that any of the files it is comparing is binary (a
+'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
+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
+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
+bytes.  *Note Invoking cmp::, for more information.
+
+   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-t,  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 the differences between two sample input files.
+'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 +477,9 @@ File: diffutils.info-t,  Node: Sample diff Input,  Next: Context,  Up: Output Fo
 ==========================
 
 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 +493,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 +510,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-t,  Node: Context,  Next: Side by Side,  Prev: Sample diff Input,  Up: Output Formats
@@ -528,20 +525,20 @@ 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".
 
-   GNU `diff' provides two output formats that show context around the
+   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 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 and still apply the diff correctly.  *Note Imperfect::, for
-more information on using `patch' to apply imperfect diffs.
+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
+and still apply the diff correctly.  *Note Imperfect::, for more
+information on using 'patch' to apply imperfect diffs.
 
 * Menu:
 
@@ -560,10 +557,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 +575,7 @@ File: diffutils.info-t,  Node: Example Context,  Next: Less Context,  Up: Contex
 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
@@ -598,7 +595,7 @@ run together, because their contents overlap.
      --- 1,6 ----
        The Nameless is the origin of Heaven and Earth;
      ! The named is the mother of all things.
-     !
+     ! 
        Therefore let there always be non-being,
          so we may see their subtlety,
        And let there always be being,
@@ -618,7 +615,7 @@ File: diffutils.info-t,  Node: Less Context,  Next: Detailed Context,  Prev: Exa
 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.
 
@@ -634,7 +631,7 @@ context line is reported here.
      --- 1,4 ----
        The Nameless is the origin of Heaven and Earth;
      ! The named is the mother of all things.
-     !
+     ! 
        Therefore let there always be non-being,
      ***************
      *** 11 ****
@@ -656,15 +653,15 @@ like this:
      *** FROM-FILE FROM-FILE-MODIFICATION-TIME
      --- TO-FILE TO-FILE-MODIFICATION TIME
 
-The time stamp 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 time stamps.)  However,
-a traditional time stamp like `Thu Feb 21 23:30:39 2002' is used if the
-`LC_TIME' locale category is either `C' or `POSIX'.
+The time stamp 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
+time stamps.)  However, a traditional time stamp 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
@@ -679,24 +676,24 @@ 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 is considered to end at the line that precedes the 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
 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.
 
@@ -712,13 +709,13 @@ File: diffutils.info-t,  Node: Unified Format,  Next: Sections,  Prev: Context F
 
 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.
 
-   At present, only GNU `diff' can produce this format and only GNU
-`patch' can automatically apply diffs in this format.  For proper
-operation, `patch' typically needs at least three lines of context.
+   At present, only GNU 'diff' can produce this format and only GNU
+'patch' can automatically apply diffs in this format.  For proper
+operation, 'patch' typically needs at least three lines of context.
 
 * Menu:
 
@@ -731,7 +728,7 @@ File: diffutils.info-t,  Node: Example Unified,  Next: Detailed Unified,  Up: Un
 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 +763,12 @@ like this:
      --- FROM-FILE FROM-FILE-MODIFICATION-TIME
      +++ TO-FILE TO-FILE-MODIFICATION-TIME
 
-The time stamp looks like `2002-02-21 23:30:39.942229878 -0800' to
+The time stamp 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
 time stamps.
 
-   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,22 +779,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.  An empty hunk is considered to end at the line that precedes
-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.
+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,8 +804,8 @@ File: diffutils.info-t,  Node: Sections,  Next: Alternate Names,  Prev: Unified
 
 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
+was changed.  If the files are documents, it could mean which chapter or
+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.
 
@@ -826,18 +822,16 @@ File: diffutils.info-t,  Node: Specified Headings,  Next: C Function Headings,
 
 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
@@ -845,16 +839,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-t,  Node: C Function Headings,  Prev: Specified Headings,  Up: Sections
@@ -863,16 +857,16 @@ File: diffutils.info-t,  Node: C Function Headings,  Prev: Specified Headings,
 ...................................
 
 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 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
+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
+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
 this option for the sake of convenience.
 
 \1f
@@ -882,17 +876,16 @@ File: diffutils.info-t,  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
-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::).
-
-   Here are the first two lines of the output from `diff -C 2
+'--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::).
+
+   Here are the first two lines of the output from 'diff -C 2
 --label=original --label=modified lao tzu':
 
      *** original
@@ -904,38 +897,38 @@ File: diffutils.info-t,  Node: Side by Side,  Next: Normal,  Prev: Context,  Up:
 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.
 
@@ -943,17 +936,16 @@ 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 second line is.
+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
 limitations.  It generates much wider output than usual, and truncates
 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.
+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.
 
@@ -968,18 +960,18 @@ File: diffutils.info-t,  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 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
+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
 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
@@ -988,7 +980,7 @@ File: diffutils.info-t,  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   <
@@ -1013,16 +1005,16 @@ File: diffutils.info-t,  Node: Normal,  Next: Scripts,  Prev: Side by Side,  Up:
 2.4 Showing Differences Without Context
 =======================================
 
-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 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.
+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
+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.
 
 * Menu:
 
@@ -1035,7 +1027,7 @@ File: diffutils.info-t,  Node: Example Normal,  Next: Detailed Normal,  Up: Norm
 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.
 
@@ -1046,7 +1038,7 @@ shows only the lines that are different between the two files.
      < The Named is the mother of all things.
      ---
      > The named is the mother of all things.
-     >
+     > 
      11a11,13
      > They both may be called deep and profound.
      > Deeper and more profound,
@@ -1076,23 +1068,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.
 
@@ -1107,46 +1099,46 @@ 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-t,  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
-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') option to select this output format.
+'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')
+option to select this output format.
 
    Like the normal format (*note Normal::), this output format does not
 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-t,  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
@@ -1163,27 +1155,26 @@ the complete contents of the two files):
 \1f
 File: diffutils.info-t,  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 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:
+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:
 
      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 represent an incomplete line, so if the second file ends
-in a changed incomplete line, `diff' reports an error and then pretends
-that a newline was appended.
+   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
+newline was appended.
 
    There are three types of change commands.  Each consists of a line
 number or comma-separated range of lines in the first file and a single
@@ -1191,38 +1182,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-t,  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 forward (front to back) order.  The format of the commands is also
+'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-t,  Node: RCS,  Prev: Forward ed,  Up: Scripts
@@ -1232,18 +1223,18 @@ File: diffutils.info-t,  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 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 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 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::,
+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
+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
+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::,
 for the complete contents of the two files):
 
      d1 2
@@ -1262,22 +1253,22 @@ File: diffutils.info-t,  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
+   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:
+'--ifdef=HAVE_WAITPID' option, then the affected part of your code might
+look like this:
 
          do {
      #ifndef HAVE_WAITPID
@@ -1309,10 +1300,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}
@@ -1356,113 +1347,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
-     colon, even inside the then-part of an if-then-else format, which
-     colon would normally terminate.
+     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'
-          The number of lines in the group in the old file; equals L -
-          + 1.
+     '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
+     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
+     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.
+     0, to '1 line' if N is 1, and to '%dN lines' otherwise.
 
 \1f
 File: diffutils.info-t,  Node: Line Formats,  Next: Example If-then-else,  Prev: Line Group Formats,  Up: If-then-else
@@ -1470,14 +1460,14 @@ File: diffutils.info-t,  Node: Line Formats,  Next: Example If-then-else,  Prev:
 2.6.2 Line Formats
 ------------------
 
-Line formats control how each line taken from an input file is output
-as part of a line group in if-then-else format.
+Line formats control how each line taken from an input file is output as
+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 lines.  The formats contain newline characters where newlines
-are desired on output.
+is '-' for deleted lines, '|' for added lines, and a space for unchanged
+lines.  The formats contain newline characters where newlines are
+desired on output.
 
      diff \
         --old-line-format='-%l
@@ -1491,64 +1481,63 @@ are 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
@@ -1571,7 +1560,7 @@ File: diffutils.info-t,  Node: Example If-then-else,  Next: Detailed If-then-els
 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
@@ -1604,18 +1593,18 @@ File: diffutils.info-t,  Node: Detailed If-then-else,  Prev: Example If-then-els
 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
-line group format; if the hunk contains only lines from the second
-file, `diff' uses the new group format; otherwise, `diff' uses the
-changed group format.
+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
+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
@@ -1630,17 +1619,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 check that if the differing lines contain any of the C
-preprocessor 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'
+   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
+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'
 option, except it operates on a file and a diff to produce a merged
 file.  *Note patch Options::.
 
@@ -1651,24 +1640,24 @@ File: diffutils.info-t,  Node: Incomplete Lines,  Next: Comparing Directories,
 ******************
 
 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.  Incomplete lines do not match full lines unless differences
-in white space are ignored (*note White Space::).
+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
-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
+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, 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
@@ -1677,14 +1666,14 @@ just `f' and `g', respectively.  Then `diff F G' outputs
      > 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
@@ -1696,98 +1685,96 @@ File: diffutils.info-t,  Node: Comparing Directories,  Next: Adjusting Output,
 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
-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 subdirectories common to both directories without comparing
-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;
+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
+subdirectories common to both directories without comparing
+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;
 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, and
-similarly `diff -N - b' treats standard input as empty if it is closed
-but `b' exists.
-
-   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 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.  *Note Making Patches::, for more discussion of
-making patches for distribution.
+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, and similarly
+'diff -N - b' treats standard input as empty if it is closed but 'b'
+exists.
+
+   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
+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.
+*Note Making Patches::, for more discussion of making patches for
+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 avoid that `diff' follows symbolic links, use the
-`--no-dereference'.  When this option is in use, symbolic links will be
-treated like a special kind of files, rather than comparing the target
-of each symbolic link.
+   To tell 'diff' not to follow a symbolic link, use the
+'--no-dereference' option.
 
 \1f
 File: diffutils.info-t,  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-t,  Node: Tabs,  Next: Trailing Blanks,  Up: Adjusting Output
@@ -1795,20 +1782,20 @@ File: diffutils.info-t,  Node: Tabs,  Next: Trailing Blanks,  Up: Adjusting Outp
 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 correctly.
+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
+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 that tab stops are set every 8 print columns, but this
-can be altered by the `--tabsize=COLUMNS' option.
+'--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 other method for making tabs line up correctly is to add a tab
 character instead of a space after the indicator character at the
@@ -1818,8 +1805,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-t,  Node: Trailing Blanks,  Next: Pagination,  Prev: Tabs,  Up: Adjusting Output
@@ -1828,91 +1815,90 @@ File: diffutils.info-t,  Node: Trailing Blanks,  Next: Pagination,  Prev: Tabs,
 ============================
 
 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 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.
+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
+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.
 
 \1f
 File: diffutils.info-t,  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-t,  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
-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 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 should break the link and replace it with a regular
-copy.
-
-   You can also affect the performance of GNU `diff' by giving it
+'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
+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
+should break the link and replace it with a regular copy.
+
+   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' 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 will still be correct.
-
-   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 discarding the last LINES lines of the prefix and the first LINES
-lines of the suffix.  This gives `diff' further opportunities to find a
+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
+will still be correct.
+
+   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
+discarding the last LINES lines of the prefix and the first LINES lines
+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.
@@ -1923,19 +1909,19 @@ File: diffutils.info-t,  Node: Comparing Three Files,  Next: diff3 Merging,  Pre
 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.
+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.
@@ -1947,9 +1933,9 @@ File: diffutils.info-t,  Node: Sample diff3 Input,  Next: Example diff3 Normal,
 =============================
 
 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.
@@ -1969,10 +1955,10 @@ Input::).  This is the third sample file, called `tao':
 \1f
 File: diffutils.info-t,  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.
 
@@ -1988,7 +1974,7 @@ shows only the lines that are different among the three files.
      2:2,3c
      3:4,5c
        The named is the mother of all things.
-
+  
      ====3
      1:8c
      2:7c
@@ -2002,68 +1988,68 @@ shows only the lines that are different among the three files.
        Deeper and more profound,
        The door of all subtleties!
      3:13,14c
-
+  
          -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 
 \1f
 File: diffutils.info-t,  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' means that the hunk follows line 11 in the first file and
-     contains no lines from that file.
+     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'
+     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 hunk contains lines 11 through 13 from the second file.
+     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 `\'.
+Incomplete Lines::), it is distinguished on output from a full line by a
+following line that starts with '\'.
 
 \1f
 File: diffutils.info-t,  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
+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.
+   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
@@ -2079,9 +2065,9 @@ 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 three files, then a three-way hunk containing the last line of each
+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.
 
 \1f
@@ -2090,16 +2076,16 @@ File: diffutils.info-t,  Node: diff3 Merging,  Next: Interactive Merging,  Prev:
 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
@@ -2118,21 +2104,21 @@ 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".
 
-   `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.
+   '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.
 
-   `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'.
+   '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'.
 
 * 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
@@ -2141,24 +2127,23 @@ File: diffutils.info-t,  Node: Which Changes,  Next: Marking Conflicts,  Up: dif
 8.1 Selecting Which Changes to Incorporate
 ==========================================
 
-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').
+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').
 
-   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::).
+changes have already been merged.  If this assumption is not a safe one,
+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
@@ -2167,12 +2152,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
@@ -2184,7 +2169,7 @@ File: diffutils.info-t,  Node: Marking Conflicts,  Next: Bypassing ed,  Prev: Wh
 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:
 
@@ -2205,11 +2190,11 @@ follows:
      lines from C
      >>>>>>> C
 
-   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:
+   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:
 
      <<<<<<< tzu
      =======
@@ -2229,14 +2214,14 @@ brackets 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
      =======
@@ -2245,12 +2230,12 @@ changes.  For example, for the three-way overlapping change above, the
      >>>>>>> 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-t,  Node: Bypassing ed,  Next: Merging Incomplete Lines,  Prev: Marking Conflicts,  Up: diff3 Merging
@@ -2258,12 +2243,12 @@ File: diffutils.info-t,  Node: Bypassing ed,  Next: Merging Incomplete Lines,  P
 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
@@ -2293,19 +2278,19 @@ Input:: for a copy of the input files) would output the following:
 \1f
 File: diffutils.info-t,  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 to the output as they are found; if the merged output ends in an
+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 been present.
+   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
 File: diffutils.info-t,  Node: Saving the Changed File,  Prev: Merging Incomplete Lines,  Up: diff3 Merging
@@ -2313,41 +2298,41 @@ File: diffutils.info-t,  Node: Saving the Changed File,  Prev: Merging Incomplet
 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-t,  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-t,  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
@@ -2361,14 +2346,14 @@ 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') option (*note Side by Side::).
+   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
 File: diffutils.info-t,  Node: Merge Commands,  Prev: sdiff Option Summary,  Up: Interactive Merging
@@ -2377,88 +2362,88 @@ File: diffutils.info-t,  Node: Merge Commands,  Prev: sdiff Option Summary,  Up:
 ==================
 
 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-t,  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
-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 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
-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'.
-
-   `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 the proper order.
-
-   `patch' accepts a series of diffs in its standard input, usually
+'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
+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
+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'.
+
+   '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
+the proper order.
+
+   '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.
@@ -2468,37 +2453,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-t,  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' can understand.
+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
@@ -2507,24 +2492,24 @@ File: diffutils.info-t,  Node: Revision Control,  Next: Imperfect,  Prev: patch
 10.2 Revision Control
 =====================
 
-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) the file from the revision control system.  Patch currently
-supports 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 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 and POSIX::.
+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)
+the file from the revision control system.  Patch currently supports
+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 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 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-t,  Node: Imperfect,  Next: Creating and Removing,  Prev: Revision Control,  Up: Merging with patch
@@ -2532,15 +2517,15 @@ File: diffutils.info-t,  Node: Imperfect,  Next: Creating and Removing,  Prev: R
 10.3 Applying Imperfect Patches
 ===============================
 
-`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 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
+'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
+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
 unencapsulates the input.
 
    However, certain other types of imperfect input require user
@@ -2550,8 +2535,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-t,  Node: Changed White Space,  Next: Reversed Patches,  Up: Imperfect
@@ -2561,9 +2546,9 @@ File: diffutils.info-t,  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
@@ -2575,85 +2560,83 @@ File: diffutils.info-t,  Node: Reversed Patches,  Next: Inexact,  Prev: Changed
 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 is a reversed patch and offers to un-apply the patch.  This could be
+   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-t,  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.  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' 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.
+   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'
+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.
+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
-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 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
-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 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,
+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
+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
+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
+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,
 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 context shown in the diff (typically 3).  In these cases, you should
+diff using a fuzz factor equal to or greater than the number of lines of
+context shown in the diff (typically 3).  In these cases, you should
 probably look at a context diff between your original and patched input
 files to see if the changes make sense.  Compiling without errors is a
 pretty good indication that the patch worked, but not a guarantee.
@@ -2661,7 +2644,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.
@@ -2669,20 +2652,20 @@ from.
 \1f
 File: diffutils.info-t,  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 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 without actually changing any files.  You can then
-inspect the 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 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' option.
+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
+without actually changing any files.  You can then inspect the
+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
+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'
+option.
 
 \1f
 File: diffutils.info-t,  Node: Creating and Removing,  Next: Patching Time Stamps,  Prev: Imperfect,  Up: Merging with patch
@@ -2691,18 +2674,18 @@ File: diffutils.info-t,  Node: Creating and Removing,  Next: Patching Time Stamp
 ================================
 
 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' 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 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 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'
+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
+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
+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'
 asks for confirmation before applying the patch.
 
 \1f
@@ -2711,40 +2694,39 @@ File: diffutils.info-t,  Node: Patching Time Stamps,  Next: Multiple Patches,  P
 10.5 Updating Time Stamps on Patched Files
 ==========================================
 
-When `patch' updates a file, it normally sets the file's last-modified
-time stamp 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
+time stamp 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 time stamps 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' time stamps 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 time stamps 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').
+headers specify a time zone, this option is equivalent to '--set-utc'
+('-Z').
 
-   `patch' normally refrains from setting a file's time stamps if the
+   'patch' normally refrains from setting a file's time stamps if the
 file's original last-modified time stamp 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
 time stamps are set regardless.
 
-   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 time stamps 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
+   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 time stamps 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
 confused by the patched files' times.
 
 \1f
@@ -2754,55 +2736,55 @@ File: diffutils.info-t,  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
      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 conforming to POSIX, and the best name otherwise.
+   * 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 Control::), and no named files exist but an RCS,
-     ClearCase, or SCCS master is found, `patch' selects the first
-     named file with an RCS, ClearCase, or SCCS master.
+   * 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,
+     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
+     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.
+     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.
+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
@@ -2811,33 +2793,33 @@ File: diffutils.info-t,  Node: patch Directories,  Next: Backups,  Prev: Multipl
 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 from a message containing the patch like this:
+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
 
    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 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 base file names.
+'--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
+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 directory.
+   '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
 File: diffutils.info-t,  Node: Backups,  Next: Backup Names,  Prev: patch Directories,  Up: Merging with patch
@@ -2845,17 +2827,17 @@ File: diffutils.info-t,  Node: Backups,  Next: Backup Names,  Prev: patch Direct
 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.
 
@@ -2869,71 +2851,69 @@ File: diffutils.info-t,  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.  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' 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.
 
-   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' 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::).
+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
-Backup Names: (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'
+'-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'
      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') 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 either of these prefix options, the suffix-based options are
-ignored.
+   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
+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 one that is backed up, not the input file.
+   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-t,  Node: Reject Names,  Next: patch Messages,  Prev: Backup Names,  Up: Merging with patch
@@ -2941,36 +2921,36 @@ File: diffutils.info-t,  Node: Reject Names,  Next: patch Messages,  Prev: Backu
 10.10 Reject File Names
 =======================
 
-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 too long).
+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
+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-t,  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.
+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.
@@ -2978,17 +2958,17 @@ status, so you don't apply a later patch to a partially patched file.
 \1f
 File: diffutils.info-t,  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
-determine whether there is a patch in that text, and if so, what kind
-of patch it is.
+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-t,  Node: patch and Keyboard Input,  Next: patch Quoting Style,  Prev: More or Fewer Messages,  Up: patch Messages
@@ -2996,79 +2976,75 @@ File: diffutils.info-t,  Node: patch and Keyboard Input,  Next: patch Quoting St
 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.
 
    * Patch files even though they have the wrong version for the
-     `Prereq:' line in the patch;
+     'Prereq:' line in the patch;
 
    * 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').
+     same as '-f').
 
    * Skip patches for which the file has the wrong version for the
-     `Prereq:' line in the patch;
+     'Prereq:' line in the patch;
 
    * Assume that patches are reversed if they look like they are.
 
 \1f
 File: diffutils.info-t,  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-t,  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
      intuiting file names from diff headers.  *Note Multiple Patches::.
 
-   * Do not remove files that are removed by a diff.  *Note Creating
-     and Removing::.
+   * 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 Revision Control::.
@@ -3078,85 +3054,81 @@ standard, as follows:
    * Do not backup files, even when there is a mismatch.  *Note
      Backups::.
 
-
 \1f
 File: diffutils.info-t,  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
-important ways.  You should be aware of the following differences if
-you must interoperate with traditional `patch', or with GNU `patch'
-version 2.1 and earlier.
+   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
+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 is normally compatible if each header's file names all
-     contain the same number of slashes.
+     '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 goes into an infinite loop when using default
-     answers.
+     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
+     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'
-          `-d DIR'
-          `-D DEFINE'
-          `-e'
-          `-l'
-          `-n'
-          `-N'
-          `-o OUTFILE'
-          `-pNUM'
-          `-R'
-          `-r REJECTFILE'
-
+          -c
+          -d DIR
+          -D DEFINE
+          -e
+          -l
+          -n
+          -N
+          -o OUTFILE
+          -pNUM
+          -R
+          -r REJECTFILE
 
 \1f
 File: diffutils.info-t,  Node: Making Patches,  Next: Invoking cmp,  Prev: Merging with patch,  Up: Top
@@ -3165,9 +3137,9 @@ File: diffutils.info-t,  Node: Making Patches,  Next: Invoking cmp,  Prev: Mergi
 ************************************
 
 Use some common sense when making and using patches.  For example, when
-sending bug fixes to a program's maintainer, send several small
-patches, one per independent subject, instead of one large,
-harder-to-digest patch that covers all the subjects.
+sending bug fixes to a program's maintainer, send several small patches,
+one per independent subject, instead of one large, harder-to-digest
+patch that covers all the subjects.
 
    Here are some other things you should keep in mind if you are going
 to distribute patches for updating a software package.
@@ -3176,7 +3148,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
@@ -3187,22 +3159,22 @@ File: diffutils.info-t,  Node: Tips for Patch Producers,  Next: Tips for Patch C
 
 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 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 time stamps and enough context; and `-r' lets the
-patch update subdirectories.  Here is an example command, using Bourne
-shell syntax:
+   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 time stamps 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
@@ -3214,14 +3186,14 @@ File: diffutils.info-t,  Node: Tips for Patch Consumers,  Next: Avoiding Common
 11.2 Tips for Patch Consumers
 =============================
 
-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.
+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 patch such files.  If you are having trouble applying such
-patches, try upgrading to a recent version of GNU `patch'.
+   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'.
 
 \1f
 File: diffutils.info-t,  Node: Avoiding Common Mistakes,  Next: Generating Smaller Patches,  Prev: Tips for Patch Consumers,  Up: Making Patches
@@ -3229,19 +3201,19 @@ File: diffutils.info-t,  Node: Avoiding Common Mistakes,  Next: Generating Small
 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:
+numbers of slashes.  For example, do not send a patch with a header that
+looks like this:
 
      diff -Naur v2.0.29/prog/README prog/README
      --- v2.0.29/prog/README   2002-03-10 23:30:39.942229878 -0800
      +++ 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
@@ -3249,29 +3221,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', which contains a patch level or version number.  If the
-input file contains the wrong version number, `patch' will complain
-immediately.
+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.
 
-   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.
 
@@ -3281,107 +3252,107 @@ File: diffutils.info-t,  Node: Generating Smaller Patches,  Prev: Avoiding Commo
 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::).  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' time stamps will not confuse `make'.
-
-   Now you can create the patch using `diff -Naur'.  Make sure to
+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' time stamps will not confuse 'make'.
+
+   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' commands to run before applying the patch.  Then you can remove
-the scratch directory.
+   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-t,  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
-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 '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:
 
      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 one file is a prefix of the other, `cmp' prints to
+   By default, 'cmp' outputs nothing if the two files have the same
+contents.  If one file is a prefix of the other, 'cmp' prints to
 standard error a message of the following form:
 
      cmp: EOF on SHORTER-FILE
 
-   Otherwise, `cmp' prints to standard output a message of the
-following form:
+   Otherwise, 'cmp' prints to standard output a message of the following
+form:
 
      FROM-FILE TO-FILE differ: char BYTE-NUMBER, line LINE-NUMBER
 
-   The message formats can differ outside the POSIX locale.  Also,
-POSIX allows the EOF message to be followed by a blank and some
-additional information.
+   The message formats can differ outside the POSIX locale.  Also, POSIX
+allows the EOF message to be followed by a blank and some additional
+information.
 
    An exit status of 0 means no differences were found, 1 means some
 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-t,  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
-`--'.  Multiple single letter options (unless they take an argument)
-can be 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 by a letter of the alphabet and precede bytes that have
-     the high bit set with `M-' (which stands for "meta").
-
-`--help'
+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'.
+
+'-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").
+
+'--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
@@ -3389,474 +3360,494 @@ can be combined into a single command line word: `-bl' is equivalent to
      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 is upward compatible with the SI prefixes
+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'
-     terabyte:  10^12 = 1,000,000,000,000.
-
-`T'
-`TiB'
+'TB'
+     terabyte: 10^12 = 1,000,000,000,000.
+'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 to IEC 60027-2.)
+'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-t,  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 text read from the standard input.  As a
-special case, `diff - -' compares a copy of standard input to itself.
+   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.
 
-   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 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 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 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
+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.  Normally, differing
-binary files count as trouble, but this can be altered by using the
-`--text' (`-a') option, or the `-q' or `--brief' option.
+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-t,  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
-`--'.  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
+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
 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'
-     Ignore changes that just insert or delete blank lines.  *Note
-     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::.
 
-`-C LINES'
-`--context[=LINES]'
+'--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]'
      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'
-     Use FORMAT to output all input lines in if-then-else format.
-     *Note Line Formats::.
+'--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::.
 
-`-q'
-`--brief'
+'--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,
+     green added lines, cyan line numbers, bold header.
+
+     Supported capabilities are as follows.
+
+     'ad=32'
+
+          SGR substring for added lines.  The default is green
+          foreground.
+
+     'de=31'
+
+          SGR substring for deleted lines.  The default is red
+          foreground.
+
+     'hd=1'
+
+          SGR substring for chunk header.  The default is bold
+          foreground.
+
+     'ln=36'
+
+          SGR substring for line numbers.  The default is cyan
+          foreground.
+
+'-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'
-     When comparing directories, start with the file FILE.  This is
-     used for resuming an aborted comparison.  *Note Comparing
-     Directories::.
+'-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::.
+     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'
-     Output at most COLUMNS (default 130) print columns per line in
-     side by side format.  *Note Side by Side Format::.
+'-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-t,  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-t,  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 change looks like this:
+'-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
           lines from MINE
@@ -3864,413 +3855,412 @@ 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 Changes::.
+'-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 Conflicts::.
+'-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-t,  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'
+   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
+comes before the 'diff' output) which file to edit.  *Note Multiple
 Patches::.
 
-   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 one of the input files.
+   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
+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-t,  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 patch and Tradition::, for which of these options are safe to use
-in older versions of `patch'.
+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'.
 
    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 time
      stamps given in context diff headers, assuming that the context
      diff headers use local time.  *Note Patching Time Stamps::.
 
-`-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 time
      stamps given in context diff headers, assuming that the context
      diff headers use UTC.  *Note Patching Time Stamps::.
 
-
 \1f
 File: diffutils.info-t,  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' instead.
+   '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
 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-t,  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 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
-`--'.  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.
+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 '--'.
+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'
-     Ignore changes that just insert or delete blank lines.  *Note
-     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'
-     Print only the left column of two common lines.  *Note Side by
-     Side Format::.
+'-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'
-     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'.
+'-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'.
 
-`-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
@@ -4279,34 +4269,33 @@ File: diffutils.info-t,  Node: Standards conformance,  Next: Projects,  Prev: In
 17 Standards conformance
 ************************
 
-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'.
+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'.
 
    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 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
+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
 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 your environment.
+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
 File: diffutils.info-t,  Node: Projects,  Next: Copying This Manual,  Prev: Standards conformance,  Up: Top
@@ -4314,15 +4303,15 @@ File: diffutils.info-t,  Node: Projects,  Next: Copying This Manual,  Prev: Stan
 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.
 
    If you are a programmer and would like to contribute something to the
-GNU project, please consider volunteering for one of these projects.
-If you are seriously contemplating work, please write to <gvc@gnu.org>
-to coordinate with other volunteers.
+GNU project, please consider volunteering for one of these projects.  If
+you are seriously contemplating work, please write to <gvc@gnu.org> to
+coordinate with other volunteers.
 
 * Menu:
 
@@ -4332,14 +4321,14 @@ to coordinate with other volunteers.
 \1f
 File: diffutils.info-t,  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
-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 changes to directory trees cannot be expressed using current patch
-formats; also, `patch' does not handle some of the existing formats.
+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
+changes to directory trees cannot be expressed using current patch
+formats; also, 'patch' does not handle some of the existing formats.
 These shortcomings motivate the following suggested projects.
 
 * Menu:
@@ -4358,24 +4347,24 @@ File: diffutils.info-t,  Node: Internationalization,  Next: Changing Structure,
 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 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'.
+   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'.
 
    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-t,  Node: Changing Structure,  Next: Special Files,  Prev: Internationalization,  Up: Shortcomings
@@ -4383,21 +4372,21 @@ File: diffutils.info-t,  Node: Changing Structure,  Next: Special Files,  Prev:
 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 time stamp 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 time stamp 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
@@ -4408,18 +4397,18 @@ File: diffutils.info-t,  Node: Special Files,  Next: Unusual File Names,  Prev:
 
 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 specified at the top level, but simply reports their presence when
-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 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.
+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
+to such files.  For example, if you change which file a symbolic link
+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.
 
 \1f
 File: diffutils.info-t,  Node: Unusual File Names,  Next: Time Stamp Order,  Prev: Special Files,  Up: Shortcomings
@@ -4428,11 +4417,11 @@ File: diffutils.info-t,  Node: Unusual File Names,  Next: Time Stamp Order,  Pre
 -------------------------------------------------
 
 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 is syntactically correct but patches the wrong files.  The format
-of `diff' output should be extended to handle all possible file names.
+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.
 
 \1f
 File: diffutils.info-t,  Node: Time Stamp Order,  Next: Ignoring Changes,  Prev: Unusual File Names,  Up: Shortcomings
@@ -4440,12 +4429,12 @@ File: diffutils.info-t,  Node: Time Stamp Order,  Next: Ignoring Changes,  Prev:
 18.1.5 Outputting Diffs in Time Stamp Order
 -------------------------------------------
 
-Applying `patch' to a multiple-file diff can result in files whose time
-stamps are out of order.  GNU `patch' has options to restore the time
+Applying 'patch' to a multiple-file diff can result in files whose time
+stamps are out of order.  GNU 'patch' has options to restore the time
 stamps of the updated files (*note Patching Time Stamps::), 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
 time stamp order.
 
 \1f
@@ -4456,8 +4445,8 @@ File: diffutils.info-t,  Node: Ignoring Changes,  Next: Speedups,  Prev: Time St
 
 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
@@ -4478,9 +4467,9 @@ File: diffutils.info-t,  Node: Speedups,  Prev: Ignoring Changes,  Up: Shortcomi
 
 When comparing two large directory structures, one of which was
 originally copied from the other with time stamps preserved (e.g., with
-`cp -pR'), it would greatly improve performance if an option told
-`diff' to assume that two files with the same size and time stamps have
-the same content.  *Note diff Performance::.
+'cp -pR'), it would greatly improve performance if an option told 'diff'
+to assume that two files with the same size and time stamps have the
+same content.  *Note diff Performance::.
 
 \1f
 File: diffutils.info-t,  Node: Bugs,  Prev: Shortcomings,  Up: Projects
@@ -4488,18 +4477,17 @@ File: diffutils.info-t,  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
-report mailing list
-(http://mail.gnu.org/mailman/listinfo/bug-gnu-utils)
-<bug-gnu-utils@gnu.org>.  Please send bug reports for GNU `patch' to
+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-patch@gnu.org>.  Send as precise a description of the problem as
-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 to a recent test release, which you can find in the
-directory `ftp://alpha.gnu.org/gnu/diffutils/'.
+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
+to a recent test release, which you can find in the directory
+<ftp://alpha.gnu.org/gnu/diffutils/>.
 
 \1f
 File: diffutils.info-t,  Node: Copying This Manual,  Next: Translations,  Prev: Projects,  Up: Top
@@ -4510,7 +4498,7 @@ Appendix A Copying This Manual
                      Version 1.3, 3 November 2008
 
      Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
-     `http://fsf.org/'
+     <http://fsf.org/>
 
      Everyone is permitted to copy and distribute verbatim copies
      of this license document, but changing it is not allowed.
@@ -4535,21 +4523,21 @@ Appendix A Copying This Manual
      free program should come with manuals providing the same freedoms
      that the software does.  But this License is not limited to
      software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
+     of subject matter or whether it is published as a printed book.  We
+     recommend this License principally for works whose purpose is
      instruction or reference.
 
   1. APPLICABILITY AND DEFINITIONS
 
      This License applies to any manual or other work, in any medium,
-     that contains a notice placed by the copyright holder saying it
-     can be distributed under the terms of this License.  Such a notice
+     that contains a notice placed by the copyright holder saying it can
+     be distributed under the terms of this License.  Such a notice
      grants a world-wide, royalty-free license, unlimited in duration,
      to use that work under the conditions stated herein.  The
      "Document", below, refers to any such manual or work.  Any member
-     of the public is a licensee, and is addressed as "you".  You
-     accept the license if you copy, modify or distribute the work in a
-     way requiring permission under copyright law.
+     of the public is a licensee, and is addressed as "you".  You accept
+     the license if you copy, modify or distribute the work in a way
+     requiring permission under copyright law.
 
      A "Modified Version" of the Document means any work containing the
      Document or a portion of it, either copied verbatim, or with
@@ -4567,12 +4555,12 @@ Appendix A Copying This Manual
      regarding them.
 
      The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.  If a section does not fit the above definition of
-     Secondary then it is not allowed to be designated as Invariant.
-     The Document may contain zero Invariant Sections.  If the Document
-     does not identify any Invariant Sections then there are none.
+     titles are designated, as being those of Invariant Sections, in the
+     notice that says that the Document is released under this License.
+     If a section does not fit the above definition of Secondary then it
+     is not allowed to be designated as Invariant.  The Document may
+     contain zero Invariant Sections.  If the Document does not identify
+     any Invariant Sections then there are none.
 
      The "Cover Texts" are certain short passages of text that are
      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
@@ -4583,27 +4571,27 @@ Appendix A Copying This Manual
      A "Transparent" copy of the Document means a machine-readable copy,
      represented in a format whose specification is available to the
      general public, that is suitable for revising the document
-     straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup, or absence of
-     markup, has been arranged to thwart or discourage subsequent
-     modification by readers is not Transparent.  An image format is
-     not Transparent if used for any substantial amount of text.  A
-     copy that is not "Transparent" is called "Opaque".
+     straightforwardly with generic text editors or (for images composed
+     of pixels) generic paint programs or (for drawings) some widely
+     available drawing editor, and that is suitable for input to text
+     formatters or for automatic translation to a variety of formats
+     suitable for input to text formatters.  A copy made in an otherwise
+     Transparent file format whose markup, or absence of markup, has
+     been arranged to thwart or discourage subsequent modification by
+     readers is not Transparent.  An image format is not Transparent if
+     used for any substantial amount of text.  A copy that is not
+     "Transparent" is called "Opaque".
 
      Examples of suitable formats for Transparent copies include plain
      ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML, PostScript or PDF designed for
-     human modification.  Examples of transparent image formats include
-     PNG, XCF and JPG.  Opaque formats include proprietary formats that
-     can be read and edited only by proprietary word processors, SGML or
-     XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML, PostScript or PDF
-     produced by some word processors for output purposes only.
+     SGML or XML using a publicly available DTD, and standard-conforming
+     simple HTML, PostScript or PDF designed for human modification.
+     Examples of transparent image formats include PNG, XCF and JPG.
+     Opaque formats include proprietary formats that can be read and
+     edited only by proprietary word processors, SGML or XML for which
+     the DTD and/or processing tools are not generally available, and
+     the machine-generated HTML, PostScript or PDF produced by some word
+     processors for output purposes only.
 
      The "Title Page" means, for a printed book, the title page itself,
      plus such following pages as are needed to hold, legibly, the
@@ -4641,8 +4629,8 @@ Appendix A Copying This Manual
      may not use technical measures to obstruct or control the reading
      or further copying of the copies you make or distribute.  However,
      you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
+     distribute a large enough number of copies you must also follow the
+     conditions in section 3.
 
      You may also lend copies, under the same conditions stated above,
      and you may publicly display copies.
@@ -4656,12 +4644,11 @@ Appendix A Copying This Manual
      these Cover Texts: Front-Cover Texts on the front cover, and
      Back-Cover Texts on the back cover.  Both covers must also clearly
      and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
+     front cover must present the full title with all words of the title
+     equally prominent and visible.  You may add other material on the
+     covers in addition.  Copying with changes limited to the covers, as
+     long as they preserve the title of the Document and satisfy these
+     conditions, can be treated as verbatim copying in other respects.
 
      If the required texts for either cover are too voluminous to fit
      legibly, you should put the first ones listed (as many as fit
@@ -4669,40 +4656,39 @@ Appendix A Copying This Manual
      adjacent pages.
 
      If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a computer-network location from
-     which the general network-using public has access to download
-     using public-standard network protocols a complete Transparent
-     copy of the Document, free of added material.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
+     numbering more than 100, you must either include a machine-readable
+     Transparent copy along with each Opaque copy, or state in or with
+     each Opaque copy a computer-network location from which the general
+     network-using public has access to download using public-standard
+     network protocols a complete Transparent copy of the Document, free
+     of added material.  If you use the latter option, you must take
+     reasonably prudent steps, when you begin distribution of Opaque
+     copies in quantity, to ensure that this Transparent copy will
+     remain thus accessible at the stated location until at least one
+     year after the last time you distribute an Opaque copy (directly or
+     through your agents or retailers) of that edition to the public.
 
      It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
+     the Document well before redistributing any large number of copies,
+     to give them a chance to provide you with an updated version of the
+     Document.
 
   4. MODIFICATIONS
 
      You may copy and distribute a Modified Version of the Document
      under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
+     release the Modified Version under precisely this License, with the
+     Modified Version filling the role of the Document, thus licensing
+     distribution and modification of the Modified Version to whoever
+     possesses a copy of it.  In addition, you must do these things in
+     the Modified Version:
 
        A. Use in the Title Page (and on the covers, if any) a title
-          distinct from that of the Document, and from those of
-          previous versions (which should, if there were any, be listed
-          in the History section of the Document).  You may use the
-          same title as a previous version if the original publisher of
-          that version gives permission.
+          distinct from that of the Document, and from those of previous
+          versions (which should, if there were any, be listed in the
+          History section of the Document).  You may use the same title
+          as a previous version if the original publisher of that
+          version gives permission.
 
        B. List on the Title Page, as authors, one or more persons or
           entities responsible for authorship of the modifications in
@@ -4732,31 +4718,30 @@ Appendix A Copying This Manual
 
        I. Preserve the section Entitled "History", Preserve its Title,
           and add to it an item stating at least the title, year, new
-          authors, and publisher of the Modified Version as given on
-          the Title Page.  If there is no section Entitled "History" in
-          the Document, create one stating the title, year, authors,
-          and publisher of the Document as given on its Title Page,
-          then add an item describing the Modified Version as stated in
-          the previous sentence.
+          authors, and publisher of the Modified Version as given on the
+          Title Page.  If there is no section Entitled "History" in the
+          Document, create one stating the title, year, authors, and
+          publisher of the Document as given on its Title Page, then add
+          an item describing the Modified Version as stated in the
+          previous sentence.
 
        J. Preserve the network location, if any, given in the Document
           for public access to a Transparent copy of the Document, and
           likewise the network locations given in the Document for
-          previous versions it was based on.  These may be placed in
-          the "History" section.  You may omit a network location for a
-          work that was published at least four years before the
-          Document itself, or if the original publisher of the version
-          it refers to gives permission.
+          previous versions it was based on.  These may be placed in the
+          "History" section.  You may omit a network location for a work
+          that was published at least four years before the Document
+          itself, or if the original publisher of the version it refers
+          to gives permission.
 
        K. For any section Entitled "Acknowledgements" or "Dedications",
-          Preserve the Title of the section, and preserve in the
-          section all the substance and tone of each of the contributor
+          Preserve the Title of the section, and preserve in the section
+          all the substance and tone of each of the contributor
           acknowledgements and/or dedications given therein.
 
-       L. Preserve all the Invariant Sections of the Document,
-          unaltered in their text and in their titles.  Section numbers
-          or the equivalent are not considered part of the section
-          titles.
+       L. Preserve all the Invariant Sections of the Document, unaltered
+          in their text and in their titles.  Section numbers or the
+          equivalent are not considered part of the section titles.
 
        M. Delete any section Entitled "Endorsements".  Such a section
           may not be included in the Modified Version.
@@ -4769,11 +4754,11 @@ Appendix A Copying This Manual
 
      If the Modified Version includes new front-matter sections or
      appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
+     material copied from the Document, you may at your option designate
+     some or all of these sections as invariant.  To do this, add their
+     titles to the list of Invariant Sections in the Modified Version's
+     license notice.  These titles must be distinct from any other
+     section titles.
 
      You may add a section Entitled "Endorsements", provided it contains
      nothing but endorsements of your Modified Version by various
@@ -4782,15 +4767,15 @@ Appendix A Copying This Manual
      definition of a standard.
 
      You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
+     and a passage of up to 25 words as a Back-Cover Text, to the end of
+     the list of Cover Texts in the Modified Version.  Only one passage
+     of Front-Cover Text and one of Back-Cover Text may be added by (or
+     through arrangements made by) any one entity.  If the Document
+     already includes a cover text for the same cover, previously added
+     by you or by arrangement made by the same entity you are acting on
+     behalf of, you may not add another; but you may replace the old
+     one, on explicit permission from the previous publisher that added
+     the old one.
 
      The author(s) and publisher(s) of the Document do not by this
      License give permission to use their names for publicity for or to
@@ -4800,8 +4785,8 @@ Appendix A Copying This Manual
 
      You may combine the Document with other documents released under
      this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
+     modified versions, provided that you include in the combination all
+     of the Invariant Sections of all of the original documents,
      unmodified, and list them all as Invariant Sections of your
      combined work in its license notice, and that you preserve all
      their Warranty Disclaimers.
@@ -4828,20 +4813,20 @@ Appendix A Copying This Manual
      documents released under this License, and replace the individual
      copies of this License in the various documents with a single copy
      that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
+     rules of this License for verbatim copying of each of the documents
+     in all other respects.
 
      You may extract a single document from such a collection, and
      distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
+     a copy of this License into the extracted document, and follow this
+     License in all other respects regarding verbatim copying of that
+     document.
 
   7. AGGREGATION WITH INDEPENDENT WORKS
 
      A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     storage or distribution medium, is called an "aggregate" if the
+     separate and independent documents or works, in or on a volume of a
+     storage or distribution medium, is called an "aggregate" if the
      copyright resulting from the compilation is not used to limit the
      legal rights of the compilation's users beyond what the individual
      works permit.  When the Document is included in an aggregate, this
@@ -4886,8 +4871,8 @@ Appendix A Copying This Manual
 
      However, if you cease all violation of this License, then your
      license from a particular copyright holder is reinstated (a)
-     provisionally, unless and until the copyright holder explicitly
-     and finally terminates your license, and (b) permanently, if the
+     provisionally, unless and until the copyright holder explicitly and
+     finally terminates your license, and (b) permanently, if the
      copyright holder fails to notify you of the violation by some
      reasonable means prior to 60 days after the cessation.
 
@@ -4899,33 +4884,33 @@ Appendix A Copying This Manual
      after your receipt of the notice.
 
      Termination of your rights under this section does not terminate
-     the licenses of parties who have received copies or rights from
-     you under this License.  If your rights have been terminated and
-     not permanently reinstated, receipt of a copy of some or all of
-     the same material does not give you any rights to use it.
+     the licenses of parties who have received copies or rights from you
+     under this License.  If your rights have been terminated and not
+     permanently reinstated, receipt of a copy of some or all of the
+     same material does not give you any rights to use it.
 
- 10. FUTURE REVISIONS OF THIS LICENSE
 10. FUTURE REVISIONS OF THIS LICENSE
 
      The Free Software Foundation may publish new, revised versions of
      the GNU Free Documentation License from time to time.  Such new
      versions will be similar in spirit to the present version, but may
      differ in detail to address new problems or concerns.  See
-     `http://www.gnu.org/copyleft/'.
+     <http://www.gnu.org/copyleft/>.
 
      Each version of the License is given a distinguishing version
      number.  If the Document specifies that a particular numbered
      version of this License "or any later version" applies to it, you
      have the option of following the terms and conditions either of
      that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.  If the Document specifies that a proxy
-     can decide which future versions of this License can be used, that
+     published (not as a draft) by the Free Software Foundation.  If the
+     Document does not specify a version number of this License, you may
+     choose any version ever published (not as a draft) by the Free
+     Software Foundation.  If the Document specifies that a proxy can
+     decide which future versions of this License can be used, that
      proxy's public statement of acceptance of a version permanently
      authorizes you to choose that version for the Document.
 
- 11. RELICENSING
 11. RELICENSING
 
      "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
      World Wide Web server that publishes copyrightable works and also
@@ -4955,7 +4940,6 @@ Appendix A Copying This Manual
      site under CC-BY-SA on the same site at any time before August 1,
      2009, provided the MMC is eligible for relicensing.
 
-
 ADDENDUM: How to use this License for your documents
 ====================================================
 
@@ -4983,9 +4967,9 @@ combination of the three, merge those two alternatives to suit the
 situation.
 
    If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
+recommend releasing these examples in parallel under your choice of free
+software license, such as the GNU General Public License, to permit
+their use in free software.
 
 \1f
 File: diffutils.info-t,  Node: Translations,  Next: Index,  Prev: Copying This Manual,  Up: Top
@@ -4995,7 +4979,7 @@ Appendix B Translations of This Manual
 
 Nishio Futoshi of the GNUjdoc project has prepared a Japanese
 translation of this manual.  Its most recent version can be found at
-`http://openlab.ring.gr.jp/gnujdoc/cvsweb/cvsweb.cgi/gnujdoc/'.
+<http://openlab.ring.gr.jp/gnujdoc/cvsweb/cvsweb.cgi/gnujdoc/>.
 
 \1f
 File: diffutils.info-t,  Node: Index,  Prev: Translations,  Up: Top
@@ -5011,9 +4995,12 @@ Appendix C Index
 * < output format:                       Normal.              (line   6)
 * <<<<<<< for marking conflicts:         Marking Conflicts.   (line   6)
 * _POSIX2_VERSION:                       Standards conformance.
-                                                              (line  24)
+                                                              (line  23)
+* ad capability:                         diff Options.        (line 179)
 * 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)
 * backup file names:                     Backup Names.        (line   6)
 * backup file strategy:                  Backups.             (line   6)
 * binary file diff:                      Binary.              (line   6)
@@ -5027,6 +5014,7 @@ Appendix C Index
 * ClearCase:                             Revision Control.    (line   6)
 * cmp invocation:                        Invoking cmp.        (line   6)
 * cmp options:                           cmp Options.         (line   6)
+* color, distinguishing different context: diff Options.      (line  37)
 * columnar output:                       Side by Side.        (line   6)
 * common mistakes with patches:          Avoiding Common Mistakes.
                                                               (line   6)
@@ -5037,6 +5025,7 @@ Appendix C Index
 * context output format:                 Context.             (line   6)
 * creating files:                        Creating and Removing.
                                                               (line   6)
+* de capability:                         diff Options.        (line 184)
 * diagnostics from patch:                patch Messages.      (line   6)
 * diff invocation:                       Invoking diff.       (line   6)
 * diff merging:                          Interactive Merging. (line   6)
@@ -5053,8 +5042,8 @@ Appendix C Index
 * EDITOR:                                Merge Commands.      (line  50)
 * empty files, removing:                 Creating and Removing.
                                                               (line   6)
-* exabyte, definition of:                cmp Options.         (line 109)
-* exbibyte, definition of:               cmp Options.         (line 113)
+* exabyte, definition of:                cmp Options.         (line  99)
+* exbibyte, definition of:               cmp Options.         (line 102)
 * file name alternates:                  Alternate Names.     (line   6)
 * file names with unusual characters:    Unusual File Names.  (line   6)
 * format of diff output:                 Output Formats.      (line   6)
@@ -5065,8 +5054,9 @@ Appendix C Index
 * full lines:                            Incomplete Lines.    (line   6)
 * function headings, C:                  C Function Headings. (line   6)
 * fuzz factor when patching:             Inexact.             (line   6)
-* gibibyte, definition of:               cmp Options.         (line  92)
-* gigabyte, definition of:               cmp Options.         (line  88)
+* gibibyte, definition of:               cmp Options.         (line  87)
+* gigabyte, definition of:               cmp Options.         (line  84)
+* hd capability:                         diff Options.        (line 189)
 * headings:                              Sections.            (line   6)
 * hunks:                                 Hunks.               (line   6)
 * hunks for diff3:                       diff3 Hunks.         (line   6)
@@ -5089,16 +5079,17 @@ Appendix C Index
 * invoking sdiff:                        Invoking sdiff.      (line   6)
 * keyboard input to patch:               patch and Keyboard Input.
                                                               (line   6)
-* kibibyte, definition of:               cmp Options.         (line  76)
+* kibibyte, definition of:               cmp Options.         (line  75)
 * kilobyte, definition of:               cmp Options.         (line  71)
 * LC_COLLATE:                            Comparing Directories.
                                                               (line   6)
-* LC_NUMERIC:                            Line Group Formats.  (line 144)
+* LC_NUMERIC:                            Line Group Formats.  (line 143)
 * LC_TIME:                               Detailed Context.    (line  12)
 * line formats:                          Line Formats.        (line   6)
 * line group formats:                    Line Group Formats.  (line   6)
-* mebibyte, definition of:               cmp Options.         (line  85)
-* megabyte, definition of:               cmp Options.         (line  81)
+* ln capability:                         diff Options.        (line 194)
+* mebibyte, definition of:               cmp Options.         (line  82)
+* megabyte, definition of:               cmp Options.         (line  79)
 * merge commands:                        Merge Commands.      (line   6)
 * merged diff3 format:                   Bypassing ed.        (line   6)
 * merged output format:                  If-then-else.        (line   6)
@@ -5109,6 +5100,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)
 * normal output format:                  Normal.              (line   6)
 * options for cmp:                       cmp Options.         (line   6)
 * options for diff:                      diff Options.        (line   6)
@@ -5130,23 +5122,23 @@ Appendix C Index
                                                               (line   6)
 * patch, common mistakes:                Avoiding Common Mistakes.
                                                               (line   6)
-* PATCH_GET:                             Revision Control.    (line  13)
-* PATCH_VERSION_CONTROL:                 Backup Names.        (line  21)
 * patches, shrinking:                    Generating Smaller Patches.
                                                               (line   6)
 * patching directories:                  patch Directories.   (line   6)
-* pebibyte, definition of:               cmp Options.         (line 106)
+* 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 102)
+* petabyte, definition of:               cmp Options.         (line  94)
+* POSIX:                                 patch and POSIX.     (line   6)
 * POSIX <1>:                             Standards conformance.
                                                               (line   6)
-* POSIX:                                 patch and POSIX.     (line   6)
+* POSIXLY_CORRECT:                       patch and POSIX.     (line   6)
 * POSIXLY_CORRECT <1>:                   Standards conformance.
                                                               (line   6)
-* POSIXLY_CORRECT:                       patch and POSIX.     (line   6)
 * projects for directories:              Shortcomings.        (line   6)
 * quoting style:                         patch Quoting Style. (line   6)
-* QUOTING_STYLE:                         patch Quoting Style. (line  30)
+* QUOTING_STYLE:                         patch Quoting Style. (line  26)
 * RCS:                                   Revision Control.    (line   6)
 * RCS script output format:              RCS.                 (line   6)
 * regular expression matching headings:  Specified Headings.  (line   6)
@@ -5176,8 +5168,9 @@ Appendix C Index
                                                               (line   6)
 * tab and blank difference suppression:  White Space.         (line   6)
 * tab stop alignment:                    Tabs.                (line   6)
-* tebibyte, definition of:               cmp Options.         (line  99)
-* terabyte, definition of:               cmp Options.         (line  95)
+* tebibyte, definition of:               cmp Options.         (line  92)
+* terabyte, definition of:               cmp Options.         (line  89)
+* terminal, using color iff:             diff Options.        (line  42)
 * testing patch:                         Dry Runs.            (line   6)
 * text versus binary diff:               Binary.              (line   6)
 * time stamp format, context diffs:      Detailed Context.    (line  12)
@@ -5194,127 +5187,127 @@ Appendix C Index
 * verbose messages from patch:           More or Fewer Messages.
                                                               (line   6)
 * version control:                       Revision Control.    (line   6)
-* VERSION_CONTROL <1>:                   Backup Names.        (line  21)
 * VERSION_CONTROL:                       Revision Control.    (line  22)
+* VERSION_CONTROL <1>:                   Backup Names.        (line  21)
 * white space in patches:                Changed White Space. (line   6)
-* yottabyte, definition of:              cmp Options.         (line 124)
-* zettabyte, definition of:              cmp Options.         (line 116)
+* yottabyte, definition of:              cmp Options.         (line 110)
+* zettabyte, definition of:              cmp Options.         (line 104)
 
 
 \1f
 Tag Table:
-Node: Top\7f1434
-Node: Overview\7f3648
-Node: Comparison\7f7279
-Node: Hunks\7f9984
-Node: White Space\7f11428
-Node: Blank Lines\7f13269
-Node: Specified Lines\7f14263
-Node: Case Folding\7f15391
-Node: Brief\7f15810
-Node: Binary\7f17135
-Node: Output Formats\7f21222
-Node: Sample diff Input\7f21949
-Node: Context\7f23450
-Node: Context Format\7f25029
-Node: Example Context\7f25823
-Node: Less Context\7f27332
-Node: Detailed Context\7f28523
-Node: Unified Format\7f30723
-Node: Example Unified\7f31522
-Node: Detailed Unified\7f32562
-Node: Sections\7f34207
-Node: Specified Headings\7f34968
-Node: C Function Headings\7f36521
-Node: Alternate Names\7f37368
-Node: Side by Side\7f38284
-Node: Side by Side Format\7f40436
-Node: Example Side by Side\7f41339
-Node: Normal\7f42681
-Node: Example Normal\7f43683
-Node: Detailed Normal\7f44421
-Node: Scripts\7f46162
-Node: ed Scripts\7f46569
-Node: Example ed\7f47777
-Node: Detailed ed\7f48229
-Node: Forward ed\7f49990
-Node: RCS\7f50768
-Node: If-then-else\7f51985
-Node: Line Group Formats\7f53665
-Node: Line Formats\7f59543
-Node: Example If-then-else\7f62815
-Node: Detailed If-then-else\7f63896
-Node: Incomplete Lines\7f65782
-Node: Comparing Directories\7f67422
-Node: Adjusting Output\7f71856
-Node: Tabs\7f72365
-Node: Trailing Blanks\7f73981
-Node: Pagination\7f75209
-Node: diff Performance\7f75679
-Node: Comparing Three Files\7f78768
-Node: Sample diff3 Input\7f79648
-Node: Example diff3 Normal\7f80598
-Node: Detailed diff3 Normal\7f81660
-Node: diff3 Hunks\7f83450
-Node: diff3 Merging\7f84719
-Node: Which Changes\7f86965
-Node: Marking Conflicts\7f88367
-Node: Bypassing ed\7f90825
-Node: Merging Incomplete Lines\7f92170
-Node: Saving the Changed File\7f92898
-Node: Interactive Merging\7f93516
-Node: sdiff Option Summary\7f94227
-Node: Merge Commands\7f95432
-Node: Merging with patch\7f96723
-Node: patch Input\7f99097
-Node: Revision Control\7f99781
-Node: Imperfect\7f100953
-Node: Changed White Space\7f102103
-Node: Reversed Patches\7f102902
-Node: Inexact\7f104368
-Node: Dry Runs\7f107928
-Node: Creating and Removing\7f108794
-Node: Patching Time Stamps\7f109845
-Node: Multiple Patches\7f112046
-Node: patch Directories\7f114711
-Node: Backups\7f116338
-Node: Backup Names\7f117405
-Ref: Backup Names-Footnote-1\7f120374
-Node: Reject Names\7f120501
-Node: patch Messages\7f121092
-Node: More or Fewer Messages\7f122154
-Node: patch and Keyboard Input\7f122787
-Node: patch Quoting Style\7f123818
-Node: patch and POSIX\7f124970
-Node: patch and Tradition\7f125812
-Node: Making Patches\7f129270
-Node: Tips for Patch Producers\7f130098
-Node: Tips for Patch Consumers\7f131356
-Node: Avoiding Common Mistakes\7f131995
-Node: Generating Smaller Patches\7f134522
-Node: Invoking cmp\7f136285
-Node: cmp Options\7f137710
-Node: Invoking diff\7f141373
-Node: diff Options\7f143231
-Node: Invoking diff3\7f151877
-Node: diff3 Options\7f152517
-Node: Invoking patch\7f155552
-Node: patch Options\7f156762
-Node: Invoking sdiff\7f161991
-Node: sdiff Options\7f163136
-Node: Standards conformance\7f166109
-Node: Projects\7f167857
-Node: Shortcomings\7f168570
-Node: Internationalization\7f169674
-Node: Changing Structure\7f170842
-Node: Special Files\7f171948
-Node: Unusual File Names\7f173062
-Node: Time Stamp Order\7f173703
-Node: Ignoring Changes\7f174348
-Node: Speedups\7f175120
-Node: Bugs\7f175586
-Node: Copying This Manual\7f176441
-Node: Translations\7f201582
-Node: Index\7f201956
+Node: Top\7f1432
+Node: Overview\7f3646
+Node: Comparison\7f7200
+Node: Hunks\7f10144
+Node: White Space\7f11587
+Node: Blank Lines\7f13428
+Node: Specified Lines\7f14419
+Node: Case Folding\7f15547
+Node: Brief\7f15966
+Node: Binary\7f17291
+Node: Output Formats\7f21090
+Node: Sample diff Input\7f21817
+Node: Context\7f23318
+Node: Context Format\7f24897
+Node: Example Context\7f25691
+Node: Less Context\7f27201
+Node: Detailed Context\7f28393
+Node: Unified Format\7f30593
+Node: Example Unified\7f31392
+Node: Detailed Unified\7f32432
+Node: Sections\7f34076
+Node: Specified Headings\7f34837
+Node: C Function Headings\7f36388
+Node: Alternate Names\7f37236
+Node: Side by Side\7f38151
+Node: Side by Side Format\7f40303
+Node: Example Side by Side\7f41207
+Node: Normal\7f42549
+Node: Example Normal\7f43552
+Node: Detailed Normal\7f44291
+Node: Scripts\7f46032
+Node: ed Scripts\7f46439
+Node: Example ed\7f47647
+Node: Detailed ed\7f48099
+Node: Forward ed\7f49860
+Node: RCS\7f50638
+Node: If-then-else\7f51856
+Node: Line Group Formats\7f53536
+Node: Line Formats\7f59419
+Node: Example If-then-else\7f62690
+Node: Detailed If-then-else\7f63771
+Node: Incomplete Lines\7f65658
+Node: Comparing Directories\7f67296
+Node: Adjusting Output\7f71590
+Node: Tabs\7f72099
+Node: Trailing Blanks\7f73715
+Node: Pagination\7f74942
+Node: diff Performance\7f75412
+Node: Comparing Three Files\7f78503
+Node: Sample diff3 Input\7f79383
+Node: Example diff3 Normal\7f80333
+Node: Detailed diff3 Normal\7f81399
+Node: diff3 Hunks\7f83189
+Node: diff3 Merging\7f84457
+Node: Which Changes\7f86704
+Node: Marking Conflicts\7f88106
+Node: Bypassing ed\7f90563
+Node: Merging Incomplete Lines\7f91908
+Node: Saving the Changed File\7f92636
+Node: Interactive Merging\7f93254
+Node: sdiff Option Summary\7f93965
+Node: Merge Commands\7f95170
+Node: Merging with patch\7f96461
+Node: patch Input\7f98832
+Node: Revision Control\7f99516
+Node: Imperfect\7f100689
+Node: Changed White Space\7f101840
+Node: Reversed Patches\7f102639
+Node: Inexact\7f104105
+Node: Dry Runs\7f107663
+Node: Creating and Removing\7f108529
+Node: Patching Time Stamps\7f109581
+Node: Multiple Patches\7f111782
+Node: patch Directories\7f114446
+Node: Backups\7f116072
+Node: Backup Names\7f117139
+Ref: Backup Names-Footnote-1\7f120096
+Node: Reject Names\7f120223
+Node: patch Messages\7f120814
+Node: More or Fewer Messages\7f121876
+Node: patch and Keyboard Input\7f122509
+Node: patch Quoting Style\7f123540
+Node: patch and POSIX\7f124688
+Node: patch and Tradition\7f125529
+Node: Making Patches\7f128953
+Node: Tips for Patch Producers\7f129781
+Node: Tips for Patch Consumers\7f131039
+Node: Avoiding Common Mistakes\7f131678
+Node: Generating Smaller Patches\7f134205
+Node: Invoking cmp\7f135967
+Node: cmp Options\7f137391
+Node: Invoking diff\7f141037
+Node: diff Options\7f142658
+Node: Invoking diff3\7f152509
+Node: diff3 Options\7f153149
+Node: Invoking patch\7f156184
+Node: patch Options\7f157394
+Node: Invoking sdiff\7f162623
+Node: sdiff Options\7f163767
+Node: Standards conformance\7f166741
+Node: Projects\7f168489
+Node: Shortcomings\7f169203
+Node: Internationalization\7f170307
+Node: Changing Structure\7f171475
+Node: Special Files\7f172581
+Node: Unusual File Names\7f173694
+Node: Time Stamp Order\7f174335
+Node: Ignoring Changes\7f174980
+Node: Speedups\7f175752
+Node: Bugs\7f176218
+Node: Copying This Manual\7f177073
+Node: Translations\7f202194
+Node: Index\7f202568
 \1f
 End Tag Table
index 2d238dc..b478380 100644 (file)
@@ -14,7 +14,7 @@ and documents the @acronym{GNU} @command{diff}, @command{diff3},
 differences between files and the @acronym{GNU} @command{patch} command for
 using their output to update files.
 
-Copyright @copyright{} 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2013 Free
+Copyright @copyright{} 1992-1994, 1998, 2001-2002, 2004, 2006, 2009-2016 Free
 Software Foundation, Inc.
 
 @quotation
@@ -142,26 +142,26 @@ use diffs to update files.
 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'',
-@cite{Algorithmica} Vol.@: 1 No.@: 2, 1986, pp.@: 251--266; and in ``A File
+@cite{Algorithmica} Vol.@: 1, 1986, pp.@: 251--266,
+@url{http://dx.doi.org/10.1007/BF01840446}; and in ``A File
 Comparison Program'', Webb Miller and Eugene W. Myers,
-@cite{Software---Practice and Experience} Vol.@: 15 No.@: 11, 1985,
-pp.@: 1025--1040.
+@cite{Software---Practice and Experience} Vol.@: 15, 1985,
+pp.@: 1025--1040,
+@url{http://dx.doi.org/10.1002/spe.4380151102}.
 @c From: "Gene Myers" <gene@cs.arizona.edu>
 @c They are about the same basic algorithm; the Algorithmica
 @c paper gives a rigorous treatment and the sub-algorithm for
 @c delivering scripts and should be the primary reference, but
 @c both should be mentioned.
-The algorithm was independently discovered as described by E. Ukkonen in
+The algorithm was independently discovered as described by Esko Ukkonen in
 ``Algorithms for Approximate String Matching'',
-@cite{Information and Control} Vol.@: 64, 1985, pp.@: 100--118.
+@cite{Information and Control} Vol.@: 64, 1985, pp.@: 100--118,
+@url{http://dx.doi.org/10.1016/S0019-9958(85)80046-2}.
 @c From: "Gene Myers" <gene@cs.arizona.edu>
 @c Date: Wed, 29 Sep 1993 08:27:55 MST
 @c Ukkonen should be given credit for also discovering the algorithm used
 @c in GNU diff.
-Unless the @option{--minimal} option is used, @command{diff} uses a
-heuristic by Paul Eggert that limits the cost to @math{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
+Related algorithms are surveyed by Alfred V. Aho in
 section 6.3 of ``Algorithms for Finding Patterns in Strings'',
 @cite{Handbook of Theoretical Computer Science} (Jan Van Leeuwen,
 ed.), Vol.@: A, @cite{Algorithms and Complexity}, Elsevier/MIT Press,
@@ -219,6 +219,11 @@ 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 @command{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.
+
 @menu
 * Hunks::             Groups of differing lines.
 * White Space::       Suppressing differences in white space.
@@ -426,6 +431,8 @@ binary (a non-text file), it normally treats that pair of files much as
 if the summary output format had been selected (@pxref{Brief}), and
 reports only that the binary files are different.  This is because line
 by line 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.
 
 @command{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
@@ -450,14 +457,6 @@ You can also force @command{diff} to report only whether files differ
 (but not how).  Use the @option{--brief} (@option{-q}) option for
 this.
 
-Normally, differing binary files count as trouble because the
-resulting @command{diff} output does not capture all the differences.
-This trouble causes @command{diff} to exit with status 2.  However,
-this trouble cannot occur with the @option{--text} (@option{-a})
-option, or with the @option{--brief} (@option{-q}) option, as these
-options both cause @command{diff} to generate a form of output that
-represents differences as requested.
-
 In operating systems that distinguish between text and binary files,
 @command{diff} normally reads and writes all data as text.  Use the
 @option{--binary} option to force @command{diff} to read and write binary
@@ -1849,12 +1848,9 @@ is specified while the @option{--ignore-file-name-case} option is in
 effect, case is ignored when excluding file names matching the
 specified patterns.
 
-To avoid that @command{diff} follows symbolic links, use the
+To tell @command{diff} not to follow a symbolic link, use the
 @c later: @option{--no-dereference} (@option{-P}).
-@option{--no-dereference}.
-When this option is in use,
-symbolic links will be treated like a special kind of files, rather than
-comparing the target of each symbolic link.
+@option{--no-dereference} option.
 
 @node Adjusting Output
 @chapter Making @command{diff} Output Prettier
@@ -2442,7 +2438,7 @@ put the merged text.  @xref{Invoking sdiff}, for more details on the
 options to @command{sdiff}.
 
 Another way to merge files interactively is to use the Emacs Lisp
-package @command{emerge}.  @xref{emerge, , emerge, emacs, The
+package @command{emerge}.  @xref{Emerge, , Emerge, emacs, The
 @acronym{GNU} Emacs Manual}, for more information.
 
 @menu
@@ -3678,8 +3674,7 @@ diff @var{options}@dots{} @var{files}@dots{}
 In the simplest case, two file names @var{from-file} and
 @var{to-file} are given, and @command{diff} compares the contents of
 @var{from-file} and @var{to-file}.  A file name of @file{-} stands for
-text read from the standard input.  As a special case, @samp{diff - -}
-compares a copy of standard input to itself.
+the standard input.
 
 If one file is a directory and the other is not, @command{diff} compares
 the file in the directory whose name is that of the non-directory.
@@ -3705,10 +3700,7 @@ argument by itself treats the remaining arguments as file names even if
 they begin with @samp{-}.
 
 An exit status of 0 means no differences were found, 1 means some
-differences were found, and 2 means trouble.  Normally, differing
-binary files count as trouble, but this can be altered by using the
-@option{--text} (@option{-a}) option, or the @option{-q} or
-@option{--brief} option.
+differences were found, and 2 means trouble.
 
 @menu
 * diff Options:: Summary of options to @command{diff}.
@@ -3750,6 +3742,27 @@ Read and write data in binary mode.  @xref{Binary}.
 Use the context output format, showing three lines of context.
 @xref{Context Format}.
 
+@item --color [=@var{when}]
+@cindex color, distinguishing different context
+Specify whether to use color for distinguishing different contexts,
+like header, added or removed lines.  @var{when} may be omitted, or
+one of:
+@itemize @bullet
+@item none
+@vindex none @r{color option}
+Do not use color at all.  This is the default when no --color option
+is specified.
+@item auto
+@vindex auto @r{color option}
+@cindex terminal, using color iff
+Use color only if standard output is a terminal.
+@item always
+@vindex always @r{color option}
+Always use color.
+@end itemize
+Specifying @option{--color} and no @var{when} is equivalent to
+@option{--color=auto}.
+
 @item -C @var{lines}
 @itemx --context@r{[}=@var{lines}@r{]}
 Use the context output format, showing @var{lines} (an integer) lines of
@@ -3862,6 +3875,8 @@ if-then-else format.  @xref{Line Formats}.
 
 @item --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.
 
 @item --old-group-format=@var{format}
 Use @var{format} to output a group of lines taken from just the first
@@ -3875,6 +3890,40 @@ if-then-else format.  @xref{Line Formats}.
 @itemx --show-c-function
 Show which C function each change is in.  @xref{C Function Headings}.
 
+@item --palette=@var{palette}
+Specify what color palette to use when colored output is enabled.  It
+defaults to @samp{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.
+
+@table @code
+@item ad=32
+@vindex ad @r{capability}
+
+SGR substring for added lines.
+The default is green foreground.
+
+@item de=31
+@vindex de @r{capability}
+
+SGR substring for deleted lines.
+The default is red foreground.
+
+@item hd=1
+@vindex hd @r{capability}
+
+SGR substring for chunk header.
+The default is bold foreground.
+
+@item ln=36
+@vindex ln @r{capability}
+
+SGR substring for line numbers.
+The default is cyan foreground.
+@end table
+
+
 @item -q
 @itemx --brief
 Report only whether the files differ, not the details of the
@@ -4680,8 +4729,8 @@ time stamps have the same content.  @xref{diff Performance}.
 If you think you have found a bug in @acronym{GNU} @command{cmp},
 @command{diff}, @command{diff3}, or @command{sdiff}, please report it
 by electronic mail to the
-@uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-utils,GNU utilities
-bug report mailing list} @email{bug-gnu-utils@@gnu.org}.  Please send
+@uref{http://mail.gnu.org/mailman/listinfo/bug-diffutils,GNU utilities
+bug report mailing list} @email{bug-diffutils@@gnu.org}.  Please send
 bug reports for @acronym{GNU} @command{patch} to
 @email{bug-patch@@gnu.org}.  Send as precise a description of the
 problem as you can, including the output of the @option{--version}
index cb71f05..9c3bbe5 100644 (file)
@@ -97,7 +97,7 @@ format, SGML or XML using a publicly available
 DTD, and standard-conforming simple HTML,
 PostScript or PDF designed for human modification.  Examples
 of transparent image formats include PNG, XCF and
-JPG.  Opaque formats include proprietary formats that can be
+JPG@.  Opaque formats include proprietary formats that can be
 read and edited only by proprietary word processors, SGML or
 XML for which the DTD and/or processing tools are
 not generally available, and the machine-generated HTML,
index c18f5a1..0c19478 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 23 March 2013
-@set UPDATED-MONTH March 2013
-@set EDITION 3.3
-@set VERSION 3.3
+@set UPDATED 4 August 2016
+@set UPDATED-MONTH August 2016
+@set EDITION 3.4
+@set VERSION 3.4
index c18f5a1..0c19478 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 23 March 2013
-@set UPDATED-MONTH March 2013
-@set EDITION 3.3
-@set VERSION 3.3
+@set UPDATED 4 August 2016
+@set UPDATED-MONTH August 2016
+@set EDITION 3.4
+@set VERSION 3.4
index c81941a..39a9b86 100755 (executable)
--- a/exgettext
+++ b/exgettext
@@ -1,7 +1,8 @@
 #! /bin/sh
 # Wrapper around gettext for programs using the msgid convention.
 
-# Copyright (C) 1998, 2001, 2004, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 1998, 2001, 2004, 2009-2013, 2015-2016 Free Software
+# Foundation, Inc.
 
 # Written by Paul Eggert <eggert@twinsun.com>.
 
index 0407f3e..d986484 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 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
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -73,131 +111,153 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(srcdir)/gnulib.mk $(srcdir)/Makefile.in \
-       $(srcdir)/Makefile.am $(top_srcdir)/build-aux/depcomp \
-       $(noinst_HEADERS) $(top_srcdir)/build-aux/test-driver
-TESTS = test-alloca-opt$(EXEEXT) test-areadlink$(EXEEXT) \
-       test-argmatch$(EXEEXT) test-binary-io.sh \
+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) \
        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-close$(EXEEXT) test-dirname$(EXEEXT) \
-       test-dup2$(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-c-strcase.sh test-close$(EXEEXT) test-connect$(EXEEXT) \
+       test-ctype$(EXEEXT) test-dirname$(EXEEXT) test-dup2$(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$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
        test-freopen-safer$(EXEEXT) test-freopen$(EXEEXT) \
-       test-fstat$(EXEEXT) test-fwrite$(EXEEXT) \
+       test-fstat$(EXEEXT) test-ftruncate.sh test-fwrite$(EXEEXT) \
        test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \
        test-getopt$(EXEEXT) test-gettimeofday$(EXEEXT) \
        test-hash$(EXEEXT) test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
-       test-ignore-value$(EXEEXT) test-intprops$(EXEEXT) \
-       test-inttostr$(EXEEXT) test-inttypes$(EXEEXT) \
-       test-iswblank$(EXEEXT) test-langinfo$(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-langinfo$(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-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-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-nl_langinfo.sh test-open$(EXEEXT) test-pathmax$(EXEEXT) \
+       test-lstat$(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-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-nanosleep$(EXEEXT) \
+       test-netinet_in$(EXEEXT) test-nl_langinfo.sh \
+       test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror.sh \
+       test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
        test-quotearg-simple$(EXEEXT) test-raise$(EXEEXT) \
-       test-readlink$(EXEEXT) test-regex$(EXEEXT) \
-       test-setenv$(EXEEXT) test-setlocale1.sh test-setlocale2.sh \
+       test-rawmemchr$(EXEEXT) test-readlink$(EXEEXT) \
+       test-regex$(EXEEXT) test-select$(EXEEXT) test-select-in.sh \
+       test-select-out.sh test-setenv$(EXEEXT) test-setlocale1.sh \
+       test-setlocale2.sh test-setsockopt$(EXEEXT) \
        test-sh-quote$(EXEEXT) test-sigaction$(EXEEXT) \
        test-signal-h$(EXEEXT) test-sigprocmask$(EXEEXT) \
-       test-sleep$(EXEEXT) test-snprintf$(EXEEXT) test-stat$(EXEEXT) \
-       test-stat-time$(EXEEXT) test-stdbool$(EXEEXT) \
-       test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
-       test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
+       test-sleep$(EXEEXT) test-snprintf$(EXEEXT) \
+       test-sockets$(EXEEXT) test-stat$(EXEEXT) \
+       test-stat-time$(EXEEXT) test-stdalign$(EXEEXT) \
+       test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
+       test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
+       test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
        test-strftime$(EXEEXT) test-striconv$(EXEEXT) \
        test-string$(EXEEXT) test-strings$(EXEEXT) \
        test-strnlen$(EXEEXT) test-strtoull$(EXEEXT) \
        test-strtoumax$(EXEEXT) test-symlink$(EXEEXT) \
-       test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
-       test-sys_types$(EXEEXT) test-sys_wait$(EXEEXT) test-init.sh \
-       test-time$(EXEEXT) test-unistd$(EXEEXT) \
+       test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \
+       test-sys_socket$(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-time$(EXEEXT) test-timespec$(EXEEXT) 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-usleep$(EXEEXT) 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-wctype-h$(EXEEXT) \
-       test-wcwidth$(EXEEXT) test-xalloc-die.sh test-xstrtol.sh \
-       test-xstrtoumax.sh test-xvasprintf$(EXEEXT)
+       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-wctype-h$(EXEEXT) test-wcwidth$(EXEEXT) \
+       test-xalloc-die.sh test-xstrtol.sh test-xstrtoumax.sh \
+       test-xvasprintf$(EXEEXT)
 XFAIL_TESTS =
 noinst_PROGRAMS =
-check_PROGRAMS = test-alloca-opt$(EXEEXT) test-areadlink$(EXEEXT) \
-       test-argmatch$(EXEEXT) test-binary-io$(EXEEXT) \
-       test-bitrotate$(EXEEXT) test-btowc$(EXEEXT) \
+check_PROGRAMS = test-accept$(EXEEXT) test-alloca-opt$(EXEEXT) \
+       test-areadlink$(EXEEXT) test-argmatch$(EXEEXT) \
+       test-arpa_inet$(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-close$(EXEEXT) test-dirname$(EXEEXT) test-dup2$(EXEEXT) \
-       test-environ$(EXEEXT) test-errno$(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$(EXEEXT) test-fputc$(EXEEXT) test-fread$(EXEEXT) \
-       test-freopen-safer$(EXEEXT) test-freopen$(EXEEXT) \
-       test-fstat$(EXEEXT) test-fwrite$(EXEEXT) \
+       test-close$(EXEEXT) test-connect$(EXEEXT) test-ctype$(EXEEXT) \
+       test-dirname$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \
+       test-errno$(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$(EXEEXT) test-fputc$(EXEEXT) \
+       test-fread$(EXEEXT) test-freopen-safer$(EXEEXT) \
+       test-freopen$(EXEEXT) test-fstat$(EXEEXT) \
+       test-ftruncate$(EXEEXT) test-fwrite$(EXEEXT) \
        test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \
        test-getopt$(EXEEXT) test-gettimeofday$(EXEEXT) \
        test-hash$(EXEEXT) test-iconv-h$(EXEEXT) test-iconv$(EXEEXT) \
-       test-ignore-value$(EXEEXT) test-intprops$(EXEEXT) \
-       test-inttostr$(EXEEXT) test-inttypes$(EXEEXT) \
-       test-iswblank$(EXEEXT) test-langinfo$(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-langinfo$(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-nl_langinfo$(EXEEXT) test-open$(EXEEXT) \
-       test-pathmax$(EXEEXT) test-quotearg-simple$(EXEEXT) \
-       test-raise$(EXEEXT) test-readlink$(EXEEXT) test-regex$(EXEEXT) \
+       test-lstat$(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-nanosleep$(EXEEXT) \
+       test-netinet_in$(EXEEXT) test-nl_langinfo$(EXEEXT) \
+       test-open$(EXEEXT) test-pathmax$(EXEEXT) test-perror$(EXEEXT) \
+       test-perror2$(EXEEXT) test-pipe$(EXEEXT) \
+       test-quotearg-simple$(EXEEXT) test-raise$(EXEEXT) \
+       test-rawmemchr$(EXEEXT) test-readlink$(EXEEXT) \
+       test-regex$(EXEEXT) test-select$(EXEEXT) \
+       test-select-fd$(EXEEXT) test-select-stdin$(EXEEXT) \
        test-setenv$(EXEEXT) test-setlocale1$(EXEEXT) \
-       test-setlocale2$(EXEEXT) test-sh-quote$(EXEEXT) \
-       test-sigaction$(EXEEXT) test-signal-h$(EXEEXT) \
-       test-sigprocmask$(EXEEXT) test-sleep$(EXEEXT) \
-       test-snprintf$(EXEEXT) test-stat$(EXEEXT) \
-       test-stat-time$(EXEEXT) test-stdbool$(EXEEXT) \
-       test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \
-       test-stdlib$(EXEEXT) test-strerror$(EXEEXT) \
+       test-setlocale2$(EXEEXT) test-setsockopt$(EXEEXT) \
+       test-sh-quote$(EXEEXT) test-sigaction$(EXEEXT) \
+       test-signal-h$(EXEEXT) test-sigprocmask$(EXEEXT) \
+       test-sleep$(EXEEXT) test-snprintf$(EXEEXT) \
+       test-sockets$(EXEEXT) test-stat$(EXEEXT) \
+       test-stat-time$(EXEEXT) test-stdalign$(EXEEXT) \
+       test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \
+       test-stdint$(EXEEXT) test-stdio$(EXEEXT) test-stdlib$(EXEEXT) \
+       test-strerror$(EXEEXT) test-strerror_r$(EXEEXT) \
        test-strftime$(EXEEXT) test-striconv$(EXEEXT) \
        test-string$(EXEEXT) test-strings$(EXEEXT) \
        test-strnlen$(EXEEXT) test-strtoull$(EXEEXT) \
        test-strtoumax$(EXEEXT) test-symlink$(EXEEXT) \
-       test-sys_stat$(EXEEXT) test-sys_time$(EXEEXT) \
-       test-sys_types$(EXEEXT) test-sys_wait$(EXEEXT) \
-       test-time$(EXEEXT) test-unistd$(EXEEXT) \
+       test-sys_ioctl$(EXEEXT) test-sys_select$(EXEEXT) \
+       test-sys_socket$(EXEEXT) test-sys_stat$(EXEEXT) \
+       test-sys_time$(EXEEXT) test-sys_types$(EXEEXT) \
+       test-sys_uio$(EXEEXT) test-sys_wait$(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-usleep$(EXEEXT) \
-       test-vasnprintf$(EXEEXT) test-vasprintf$(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-xstrtol$(EXEEXT) test-xstrtoul$(EXEEXT) \
-       test-xstrtoumax$(EXEEXT) test-xvasprintf$(EXEEXT)
+       test-unsetenv$(EXEEXT) test-vasnprintf$(EXEEXT) \
+       test-vasprintf$(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-xstrtol$(EXEEXT) \
+       test-xstrtoul$(EXEEXT) test-xstrtoumax$(EXEEXT) \
+       test-xvasprintf$(EXEEXT)
 subdir = gnulib-tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -205,9 +265,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -216,14 +277,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -239,36 +301,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -281,6 +352,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+       $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/lib/config.h
 CONFIG_CLEAN_FILES =
@@ -292,9 +365,16 @@ am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
-am_libtests_a_OBJECTS = argmatch.$(OBJEXT) hash-pjw.$(OBJEXT)
+am_libtests_a_OBJECTS = dtotimespec.$(OBJEXT) hash-pjw.$(OBJEXT) \
+       sockets.$(OBJEXT) sys_socket.$(OBJEXT) timespec-add.$(OBJEXT) \
+       timespec-sub.$(OBJEXT)
 libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
 PROGRAMS = $(noinst_PROGRAMS)
+test_accept_SOURCES = test-accept.c
+test_accept_OBJECTS = test-accept.$(OBJEXT)
+am__DEPENDENCIES_2 = libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
+test_accept_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_alloca_opt_SOURCES = test-alloca-opt.c
 test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT)
 test_alloca_opt_LDADD = $(LDADD)
@@ -307,14 +387,20 @@ test_areadlink_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
 test_argmatch_SOURCES = test-argmatch.c
 test_argmatch_OBJECTS = test-argmatch.$(OBJEXT)
-am__DEPENDENCIES_2 = libtests.a ../lib/libdiffutils.a libtests.a \
-       $(am__DEPENDENCIES_1)
 test_argmatch_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_arpa_inet_SOURCES = test-arpa_inet.c
+test_arpa_inet_OBJECTS = test-arpa_inet.$(OBJEXT)
+test_arpa_inet_LDADD = $(LDADD)
+test_arpa_inet_DEPENDENCIES = 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)
 test_binary_io_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_bind_SOURCES = test-bind.c
+test_bind_OBJECTS = test-bind.$(OBJEXT)
+test_bind_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 test_bitrotate_SOURCES = test-bitrotate.c
 test_bitrotate_OBJECTS = test-bitrotate.$(OBJEXT)
 test_bitrotate_LDADD = $(LDADD)
@@ -349,6 +435,15 @@ test_close_OBJECTS = test-close.$(OBJEXT)
 test_close_LDADD = $(LDADD)
 test_close_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_connect_SOURCES = test-connect.c
+test_connect_OBJECTS = test-connect.$(OBJEXT)
+test_connect_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_1)
+test_ctype_SOURCES = test-ctype.c
+test_ctype_OBJECTS = test-ctype.$(OBJEXT)
+test_ctype_LDADD = $(LDADD)
+test_ctype_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_dirname_SOURCES = test-dirname.c
 test_dirname_OBJECTS = test-dirname.$(OBJEXT)
 test_dirname_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -428,6 +523,11 @@ test_fstat_OBJECTS = test-fstat.$(OBJEXT)
 test_fstat_LDADD = $(LDADD)
 test_fstat_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_ftruncate_SOURCES = test-ftruncate.c
+test_ftruncate_OBJECTS = test-ftruncate.$(OBJEXT)
+test_ftruncate_LDADD = $(LDADD)
+test_ftruncate_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_fwrite_SOURCES = test-fwrite.c
 test_fwrite_OBJECTS = test-fwrite.$(OBJEXT)
 test_fwrite_LDADD = $(LDADD)
@@ -468,6 +568,9 @@ test_ignore_value_OBJECTS = test-ignore-value.$(OBJEXT)
 test_ignore_value_LDADD = $(LDADD)
 test_ignore_value_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_inet_pton_SOURCES = test-inet_pton.c
+test_inet_pton_OBJECTS = test-inet_pton.$(OBJEXT)
+test_inet_pton_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_intprops_SOURCES = test-intprops.c
 test_intprops_OBJECTS = test-intprops.$(OBJEXT)
 test_intprops_LDADD = $(LDADD)
@@ -483,6 +586,16 @@ test_inttypes_OBJECTS = test-inttypes.$(OBJEXT)
 test_inttypes_LDADD = $(LDADD)
 test_inttypes_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_ioctl_SOURCES = test-ioctl.c
+test_ioctl_OBJECTS = test-ioctl.$(OBJEXT)
+test_ioctl_LDADD = $(LDADD)
+test_ioctl_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
+test_isblank_SOURCES = test-isblank.c
+test_isblank_OBJECTS = test-isblank.$(OBJEXT)
+test_isblank_LDADD = $(LDADD)
+test_isblank_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_iswblank_SOURCES = test-iswblank.c
 test_iswblank_OBJECTS = test-iswblank.$(OBJEXT)
 test_iswblank_LDADD = $(LDADD)
@@ -493,6 +606,9 @@ test_langinfo_OBJECTS = test-langinfo.$(OBJEXT)
 test_langinfo_LDADD = $(LDADD)
 test_langinfo_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_listen_SOURCES = test-listen.c
+test_listen_OBJECTS = test-listen.$(OBJEXT)
+test_listen_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_locale_SOURCES = test-locale.c
 test_locale_OBJECTS = test-locale.$(OBJEXT)
 test_locale_LDADD = $(LDADD)
@@ -508,11 +624,6 @@ test_lstat_OBJECTS = test-lstat.$(OBJEXT)
 test_lstat_LDADD = $(LDADD)
 test_lstat_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
-test_malloc_gnu_SOURCES = test-malloc-gnu.c
-test_malloc_gnu_OBJECTS = test-malloc-gnu.$(OBJEXT)
-test_malloc_gnu_LDADD = $(LDADD)
-test_malloc_gnu_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
-       libtests.a $(am__DEPENDENCIES_1)
 test_malloca_SOURCES = test-malloca.c
 test_malloca_OBJECTS = test-malloca.$(OBJEXT)
 test_malloca_LDADD = $(LDADD)
@@ -563,6 +674,15 @@ test_memchr_OBJECTS = test-memchr.$(OBJEXT)
 test_memchr_LDADD = $(LDADD)
 test_memchr_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_nanosleep_SOURCES = test-nanosleep.c
+test_nanosleep_OBJECTS = test-nanosleep.$(OBJEXT)
+test_nanosleep_DEPENDENCIES = $(am__DEPENDENCIES_2) \
+       $(am__DEPENDENCIES_1)
+test_netinet_in_SOURCES = test-netinet_in.c
+test_netinet_in_OBJECTS = test-netinet_in.$(OBJEXT)
+test_netinet_in_LDADD = $(LDADD)
+test_netinet_in_DEPENDENCIES = 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_LDADD = $(LDADD)
@@ -578,6 +698,21 @@ test_pathmax_OBJECTS = test-pathmax.$(OBJEXT)
 test_pathmax_LDADD = $(LDADD)
 test_pathmax_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_perror_SOURCES = test-perror.c
+test_perror_OBJECTS = test-perror.$(OBJEXT)
+test_perror_LDADD = $(LDADD)
+test_perror_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
+test_perror2_SOURCES = test-perror2.c
+test_perror2_OBJECTS = test-perror2.$(OBJEXT)
+test_perror2_LDADD = $(LDADD)
+test_perror2_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
+test_pipe_SOURCES = test-pipe.c
+test_pipe_OBJECTS = test-pipe.$(OBJEXT)
+test_pipe_LDADD = $(LDADD)
+test_pipe_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
+       $(am__DEPENDENCIES_1)
 test_quotearg_simple_SOURCES = test-quotearg-simple.c
 test_quotearg_simple_OBJECTS = test-quotearg-simple.$(OBJEXT)
 test_quotearg_simple_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -586,6 +721,11 @@ test_raise_OBJECTS = test-raise.$(OBJEXT)
 test_raise_LDADD = $(LDADD)
 test_raise_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
        $(am__DEPENDENCIES_1)
+test_rawmemchr_SOURCES = test-rawmemchr.c
+test_rawmemchr_OBJECTS = test-rawmemchr.$(OBJEXT)
+test_rawmemchr_LDADD = $(LDADD)
+test_rawmemchr_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_readlink_SOURCES = test-readlink.c
 test_readlink_OBJECTS = test-readlink.$(OBJEXT)
 test_readlink_LDADD = $(LDADD)
@@ -594,6 +734,15 @@ test_readlink_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
 test_regex_SOURCES = test-regex.c
 test_regex_OBJECTS = test-regex.$(OBJEXT)
 test_regex_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_select_SOURCES = test-select.c
+test_select_OBJECTS = test-select.$(OBJEXT)
+test_select_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
+test_select_fd_SOURCES = test-select-fd.c
+test_select_fd_OBJECTS = test-select-fd.$(OBJEXT)
+test_select_fd_DEPENDENCIES = $(am__DEPENDENCIES_2)
+test_select_stdin_SOURCES = test-select-stdin.c
+test_select_stdin_OBJECTS = test-select-stdin.$(OBJEXT)
+test_select_stdin_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_setenv_SOURCES = test-setenv.c
 test_setenv_OBJECTS = test-setenv.$(OBJEXT)
 test_setenv_LDADD = $(LDADD)
@@ -609,6 +758,9 @@ test_setlocale2_OBJECTS = test-setlocale2.$(OBJEXT)
 test_setlocale2_LDADD = $(LDADD)
 test_setlocale2_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_setsockopt_SOURCES = test-setsockopt.c
+test_setsockopt_OBJECTS = test-setsockopt.$(OBJEXT)
+test_setsockopt_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_sh_quote_SOURCES = test-sh-quote.c
 test_sh_quote_OBJECTS = test-sh-quote.$(OBJEXT)
 test_sh_quote_DEPENDENCIES = $(am__DEPENDENCIES_2)
@@ -637,13 +789,20 @@ test_snprintf_OBJECTS = test-snprintf.$(OBJEXT)
 test_snprintf_LDADD = $(LDADD)
 test_snprintf_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_sockets_SOURCES = test-sockets.c
+test_sockets_OBJECTS = test-sockets.$(OBJEXT)
+test_sockets_DEPENDENCIES = $(am__DEPENDENCIES_2)
 test_stat_SOURCES = test-stat.c
 test_stat_OBJECTS = test-stat.$(OBJEXT)
 test_stat_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1)
 test_stat_time_SOURCES = test-stat-time.c
 test_stat_time_OBJECTS = test-stat-time.$(OBJEXT)
-test_stat_time_LDADD = $(LDADD)
-test_stat_time_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+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 $(am__DEPENDENCIES_1)
 test_stdbool_SOURCES = test-stdbool.c
 test_stdbool_OBJECTS = test-stdbool.$(OBJEXT)
@@ -675,6 +834,11 @@ test_strerror_OBJECTS = test-strerror.$(OBJEXT)
 test_strerror_LDADD = $(LDADD)
 test_strerror_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_strerror_r_SOURCES = test-strerror_r.c
+test_strerror_r_OBJECTS = test-strerror_r.$(OBJEXT)
+test_strerror_r_LDADD = $(LDADD)
+test_strerror_r_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_strftime_SOURCES = test-strftime.c
 test_strftime_OBJECTS = test-strftime.$(OBJEXT)
 test_strftime_LDADD = $(LDADD)
@@ -713,6 +877,21 @@ test_symlink_OBJECTS = test-symlink.$(OBJEXT)
 test_symlink_LDADD = $(LDADD)
 test_symlink_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_sys_ioctl_SOURCES = test-sys_ioctl.c
+test_sys_ioctl_OBJECTS = test-sys_ioctl.$(OBJEXT)
+test_sys_ioctl_LDADD = $(LDADD)
+test_sys_ioctl_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
+test_sys_select_SOURCES = test-sys_select.c
+test_sys_select_OBJECTS = test-sys_select.$(OBJEXT)
+test_sys_select_LDADD = $(LDADD)
+test_sys_select_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
+test_sys_socket_SOURCES = test-sys_socket.c
+test_sys_socket_OBJECTS = test-sys_socket.$(OBJEXT)
+test_sys_socket_LDADD = $(LDADD)
+test_sys_socket_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_sys_stat_SOURCES = test-sys_stat.c
 test_sys_stat_OBJECTS = test-sys_stat.$(OBJEXT)
 test_sys_stat_LDADD = $(LDADD)
@@ -728,6 +907,11 @@ test_sys_types_OBJECTS = test-sys_types.$(OBJEXT)
 test_sys_types_LDADD = $(LDADD)
 test_sys_types_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
+test_sys_uio_SOURCES = test-sys_uio.c
+test_sys_uio_OBJECTS = test-sys_uio.$(OBJEXT)
+test_sys_uio_LDADD = $(LDADD)
+test_sys_uio_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
+       libtests.a $(am__DEPENDENCIES_1)
 test_sys_wait_SOURCES = test-sys_wait.c
 test_sys_wait_OBJECTS = test-sys_wait.$(OBJEXT)
 test_sys_wait_LDADD = $(LDADD)
@@ -738,6 +922,11 @@ test_time_OBJECTS = test-time.$(OBJEXT)
 test_time_LDADD = $(LDADD)
 test_time_DEPENDENCIES = 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 $(am__DEPENDENCIES_1)
 am__dirstamp = .dirstamp
 am_test_u8_mbtoucr_OBJECTS = unistr/test-u8-mbtoucr.$(OBJEXT)
 test_u8_mbtoucr_OBJECTS = $(am_test_u8_mbtoucr_OBJECTS)
@@ -761,11 +950,6 @@ test_unsetenv_OBJECTS = test-unsetenv.$(OBJEXT)
 test_unsetenv_LDADD = $(LDADD)
 test_unsetenv_DEPENDENCIES = libtests.a ../lib/libdiffutils.a \
        libtests.a $(am__DEPENDENCIES_1)
-test_usleep_SOURCES = test-usleep.c
-test_usleep_OBJECTS = test-usleep.$(OBJEXT)
-test_usleep_LDADD = $(LDADD)
-test_usleep_DEPENDENCIES = libtests.a ../lib/libdiffutils.a libtests.a \
-       $(am__DEPENDENCIES_1)
 test_vasnprintf_SOURCES = test-vasnprintf.c
 test_vasnprintf_OBJECTS = test-vasnprintf.$(OBJEXT)
 test_vasnprintf_LDADD = $(LDADD)
@@ -838,10 +1022,98 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/lib
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/accept.Po ./$(DEPDIR)/bind.Po \
+       ./$(DEPDIR)/connect.Po ./$(DEPDIR)/dtotimespec.Po \
+       ./$(DEPDIR)/fdopen.Po ./$(DEPDIR)/ftruncate.Po \
+       ./$(DEPDIR)/getcwd-lgpl.Po ./$(DEPDIR)/getpagesize.Po \
+       ./$(DEPDIR)/hash-pjw.Po ./$(DEPDIR)/inet_pton.Po \
+       ./$(DEPDIR)/ioctl.Po ./$(DEPDIR)/listen.Po \
+       ./$(DEPDIR)/nanosleep.Po ./$(DEPDIR)/perror.Po \
+       ./$(DEPDIR)/pipe.Po ./$(DEPDIR)/putenv.Po \
+       ./$(DEPDIR)/select.Po ./$(DEPDIR)/setlocale.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-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-strncasecmp.Po ./$(DEPDIR)/test-close.Po \
+       ./$(DEPDIR)/test-connect.Po ./$(DEPDIR)/test-ctype.Po \
+       ./$(DEPDIR)/test-dirname.Po ./$(DEPDIR)/test-dup2.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.Po \
+       ./$(DEPDIR)/test-fputc.Po ./$(DEPDIR)/test-fread.Po \
+       ./$(DEPDIR)/test-freopen-safer.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.Po \
+       ./$(DEPDIR)/test-gettimeofday.Po ./$(DEPDIR)/test-hash.Po \
+       ./$(DEPDIR)/test-iconv-h.Po ./$(DEPDIR)/test-iconv.Po \
+       ./$(DEPDIR)/test-ignore-value.Po ./$(DEPDIR)/test-inet_pton.Po \
+       ./$(DEPDIR)/test-intprops.Po ./$(DEPDIR)/test-inttostr.Po \
+       ./$(DEPDIR)/test-inttypes.Po ./$(DEPDIR)/test-ioctl.Po \
+       ./$(DEPDIR)/test-isblank.Po ./$(DEPDIR)/test-iswblank.Po \
+       ./$(DEPDIR)/test-langinfo.Po ./$(DEPDIR)/test-listen.Po \
+       ./$(DEPDIR)/test-locale.Po ./$(DEPDIR)/test-localeconv.Po \
+       ./$(DEPDIR)/test-lstat.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-nanosleep.Po \
+       ./$(DEPDIR)/test-netinet_in.Po ./$(DEPDIR)/test-nl_langinfo.Po \
+       ./$(DEPDIR)/test-open.Po ./$(DEPDIR)/test-pathmax.Po \
+       ./$(DEPDIR)/test-perror.Po ./$(DEPDIR)/test-perror2.Po \
+       ./$(DEPDIR)/test-pipe.Po ./$(DEPDIR)/test-quotearg-simple.Po \
+       ./$(DEPDIR)/test-raise.Po ./$(DEPDIR)/test-rawmemchr.Po \
+       ./$(DEPDIR)/test-readlink.Po ./$(DEPDIR)/test-regex.Po \
+       ./$(DEPDIR)/test-select-fd.Po ./$(DEPDIR)/test-select-stdin.Po \
+       ./$(DEPDIR)/test-select.Po ./$(DEPDIR)/test-setenv.Po \
+       ./$(DEPDIR)/test-setlocale1.Po ./$(DEPDIR)/test-setlocale2.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-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-stdint.Po \
+       ./$(DEPDIR)/test-stdio.Po ./$(DEPDIR)/test-stdlib.Po \
+       ./$(DEPDIR)/test-strerror.Po ./$(DEPDIR)/test-strerror_r.Po \
+       ./$(DEPDIR)/test-strftime.Po ./$(DEPDIR)/test-striconv.Po \
+       ./$(DEPDIR)/test-string.Po ./$(DEPDIR)/test-strings.Po \
+       ./$(DEPDIR)/test-strnlen.Po ./$(DEPDIR)/test-strtoull.Po \
+       ./$(DEPDIR)/test-strtoumax.Po ./$(DEPDIR)/test-symlink.Po \
+       ./$(DEPDIR)/test-sys_ioctl.Po ./$(DEPDIR)/test-sys_select.Po \
+       ./$(DEPDIR)/test-sys_socket.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-time.Po ./$(DEPDIR)/test-timespec.Po \
+       ./$(DEPDIR)/test-unistd.Po ./$(DEPDIR)/test-unsetenv.Po \
+       ./$(DEPDIR)/test-vasnprintf.Po ./$(DEPDIR)/test-vasprintf.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-xstrtol.Po ./$(DEPDIR)/test-xstrtoul.Po \
+       ./$(DEPDIR)/test-xstrtoumax.Po ./$(DEPDIR)/test-xvasprintf.Po \
+       ./$(DEPDIR)/timespec-add.Po ./$(DEPDIR)/timespec-sub.Po \
+       ./$(DEPDIR)/wctob.Po ./$(DEPDIR)/wctomb.Po \
+       unistr/$(DEPDIR)/test-u8-mbtoucr.Po \
+       unistr/$(DEPDIR)/test-u8-uctomb.Po \
+       uniwidth/$(DEPDIR)/test-uc_width.Po \
+       uniwidth/$(DEPDIR)/test-uc_width2.Po
 am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CFLAGS) $(CFLAGS)
+am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC      " $@;
@@ -853,75 +1125,89 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
 SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
-       test-alloca-opt.c test-areadlink.c test-argmatch.c \
-       test-binary-io.c test-bitrotate.c test-btowc.c test-c-ctype.c \
-       test-c-stack.c test-c-strcasecmp.c test-c-strncasecmp.c \
-       test-close.c test-dirname.c test-dup2.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-fputc.c test-fread.c test-freopen.c \
-       test-freopen-safer.c test-fstat.c test-fwrite.c \
-       test-getcwd-lgpl.c test-getdtablesize.c test-getopt.c \
-       test-gettimeofday.c test-hash.c test-iconv.c test-iconv-h.c \
-       test-ignore-value.c test-intprops.c test-inttostr.c \
-       test-inttypes.c test-iswblank.c test-langinfo.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-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-close.c \
+       test-connect.c test-ctype.c test-dirname.c test-dup2.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-fputc.c test-fread.c \
+       test-freopen.c test-freopen-safer.c test-fstat.c \
+       test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
+       test-getdtablesize.c test-getopt.c test-gettimeofday.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-langinfo.c test-listen.c test-locale.c test-localeconv.c \
+       test-lstat.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-nl_langinfo.c test-open.c test-pathmax.c \
-       test-quotearg-simple.c test-raise.c test-readlink.c \
-       test-regex.c test-setenv.c test-setlocale1.c test-setlocale2.c \
+       test-nanosleep.c test-netinet_in.c test-nl_langinfo.c \
+       test-open.c test-pathmax.c test-perror.c test-perror2.c \
+       test-pipe.c test-quotearg-simple.c test-raise.c \
+       test-rawmemchr.c test-readlink.c test-regex.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-setenv.c \
+       test-setlocale1.c test-setlocale2.c test-setsockopt.c \
        test-sh-quote.c test-sigaction.c test-signal-h.c \
-       test-sigprocmask.c test-sleep.c test-snprintf.c test-stat.c \
-       test-stat-time.c test-stdbool.c test-stddef.c test-stdint.c \
-       test-stdio.c test-stdlib.c test-strerror.c test-strftime.c \
+       test-sigprocmask.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-stdio.c test-stdlib.c \
+       test-strerror.c test-strerror_r.c test-strftime.c \
        test-striconv.c test-string.c test-strings.c test-strnlen.c \
        test-strtoull.c test-strtoumax.c test-symlink.c \
+       test-sys_ioctl.c test-sys_select.c test-sys_socket.c \
        test-sys_stat.c test-sys_time.c test-sys_types.c \
-       test-sys_wait.c test-time.c $(test_u8_mbtoucr_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_uc_width_SOURCES) \
-       $(test_uc_width2_SOURCES) test-unistd.c test-unsetenv.c \
-       test-usleep.c test-vasnprintf.c test-vasprintf.c test-verify.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-xstrtol.c test-xstrtoul.c \
-       test-xstrtoumax.c test-xvasprintf.c
+       test-sys_uio.c test-sys_wait.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-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-xstrtol.c \
+       test-xstrtoul.c test-xstrtoumax.c test-xvasprintf.c
 DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \
-       test-alloca-opt.c test-areadlink.c test-argmatch.c \
-       test-binary-io.c test-bitrotate.c test-btowc.c test-c-ctype.c \
-       test-c-stack.c test-c-strcasecmp.c test-c-strncasecmp.c \
-       test-close.c test-dirname.c test-dup2.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-fputc.c test-fread.c test-freopen.c \
-       test-freopen-safer.c test-fstat.c test-fwrite.c \
-       test-getcwd-lgpl.c test-getdtablesize.c test-getopt.c \
-       test-gettimeofday.c test-hash.c test-iconv.c test-iconv-h.c \
-       test-ignore-value.c test-intprops.c test-inttostr.c \
-       test-inttypes.c test-iswblank.c test-langinfo.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-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-close.c \
+       test-connect.c test-ctype.c test-dirname.c test-dup2.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-fputc.c test-fread.c \
+       test-freopen.c test-freopen-safer.c test-fstat.c \
+       test-ftruncate.c test-fwrite.c test-getcwd-lgpl.c \
+       test-getdtablesize.c test-getopt.c test-gettimeofday.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-langinfo.c test-listen.c test-locale.c test-localeconv.c \
+       test-lstat.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-nl_langinfo.c test-open.c test-pathmax.c \
-       test-quotearg-simple.c test-raise.c test-readlink.c \
-       test-regex.c test-setenv.c test-setlocale1.c test-setlocale2.c \
+       test-nanosleep.c test-netinet_in.c test-nl_langinfo.c \
+       test-open.c test-pathmax.c test-perror.c test-perror2.c \
+       test-pipe.c test-quotearg-simple.c test-raise.c \
+       test-rawmemchr.c test-readlink.c test-regex.c test-select.c \
+       test-select-fd.c test-select-stdin.c test-setenv.c \
+       test-setlocale1.c test-setlocale2.c test-setsockopt.c \
        test-sh-quote.c test-sigaction.c test-signal-h.c \
-       test-sigprocmask.c test-sleep.c test-snprintf.c test-stat.c \
-       test-stat-time.c test-stdbool.c test-stddef.c test-stdint.c \
-       test-stdio.c test-stdlib.c test-strerror.c test-strftime.c \
+       test-sigprocmask.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-stdio.c test-stdlib.c \
+       test-strerror.c test-strerror_r.c test-strftime.c \
        test-striconv.c test-string.c test-strings.c test-strnlen.c \
        test-strtoull.c test-strtoumax.c test-symlink.c \
+       test-sys_ioctl.c test-sys_select.c test-sys_socket.c \
        test-sys_stat.c test-sys_time.c test-sys_types.c \
-       test-sys_wait.c test-time.c $(test_u8_mbtoucr_SOURCES) \
-       $(test_u8_uctomb_SOURCES) $(test_uc_width_SOURCES) \
-       $(test_uc_width2_SOURCES) test-unistd.c test-unsetenv.c \
-       test-usleep.c test-vasnprintf.c test-vasprintf.c test-verify.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-xstrtol.c test-xstrtoul.c \
-       test-xstrtoumax.c test-xvasprintf.c
+       test-sys_uio.c test-sys_wait.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-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-xstrtol.c \
+       test-xstrtoul.c test-xstrtoumax.c test-xvasprintf.c
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
        ctags-recursive dvi-recursive html-recursive info-recursive \
        install-data-recursive install-dvi-recursive \
@@ -1167,6 +1453,9 @@ TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
 TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
        $(TEST_LOG_FLAGS)
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/gnulib.mk \
+       $(top_srcdir)/build-aux/depcomp \
+       $(top_srcdir)/build-aux/test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -1239,13 +1528,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -1299,6 +1592,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -1308,13 +1604,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -1370,6 +1671,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -1378,6 +1680,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -1387,6 +1690,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -1394,14 +1699,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -1433,6 +1744,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -1495,6 +1807,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -1514,6 +1828,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -1567,6 +1883,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -1581,6 +1898,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -1601,6 +1919,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -1611,6 +1930,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -1625,6 +1945,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -1651,17 +1972,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -1709,6 +2037,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -1717,6 +2046,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -1736,11 +2066,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -1757,6 +2090,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -1765,6 +2102,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -1773,14 +2111,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -1789,6 +2132,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -1797,9 +2141,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -1852,14 +2200,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -1868,6 +2221,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -1896,21 +2250,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1933,9 +2291,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1959,21 +2319,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1992,6 +2357,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -2029,11 +2395,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -2042,7 +2410,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
 SUBDIRS = .
 TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
        LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \
@@ -2065,36 +2433,44 @@ TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \
 noinst_HEADERS = 
 noinst_LIBRARIES = 
 check_LIBRARIES = libtests.a
-EXTRA_DIST = test-alloca-opt.c test-areadlink.h test-areadlink.c \
-       macros.h argmatch.h test-argmatch.c macros.h test-binary-io.sh \
-       test-binary-io.c macros.h test-bitrotate.c macros.h \
+EXTRA_DIST = accept.c w32sock.h test-accept.c signature.h macros.h \
+       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-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-close.c \
-       signature.h macros.h test-dirname.c test-dup2.c signature.h \
-       macros.h test-environ.c test-errno.c 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-fnmatch.c signature.h macros.h \
-       fpucw.h test-fputc.c signature.h macros.h test-fread.c \
-       signature.h macros.h test-freopen-safer.c macros.h \
-       test-freopen.c signature.h macros.h test-fstat.c signature.h \
-       macros.h test-fwrite.c signature.h macros.h getcwd-lgpl.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-environ.c test-errno.c \
+       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-fnmatch.c signature.h macros.h fpucw.h test-fputc.c \
+       signature.h macros.h test-fread.c signature.h macros.h \
+       test-freopen-safer.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.c \
        test-getopt.h test-getopt_long.h getpagesize.c signature.h \
        test-gettimeofday.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 test-iswblank.c macros.h test-langinfo.c \
-       test-locale.c test-localeconv.c signature.h macros.h \
-       test-lstat.h test-lstat.c signature.h macros.h \
-       test-malloc-gnu.c test-malloca.c test-mbrtowc1.sh \
-       test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh \
+       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-langinfo.c listen.c w32sock.h test-listen.c \
+       signature.h macros.h test-locale.c test-localeconv.c \
+       signature.h macros.h test-lstat.h test-lstat.c signature.h \
+       macros.h test-malloca.c 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.c signature.h macros.h \
@@ -2104,40 +2480,54 @@ EXTRA_DIST = test-alloca-opt.c test-areadlink.h test-areadlink.c \
        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-nl_langinfo.sh test-nl_langinfo.c signature.h macros.h \
-       test-open.h test-open.c signature.h macros.h test-pathmax.c \
+       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 signature.h 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 \
        putenv.c test-quotearg-simple.c test-quotearg.h macros.h \
-       test-raise.c signature.h macros.h test-readlink.h \
-       test-readlink.c signature.h macros.h test-regex.c macros.h \
-       same-inode.h setenv.c test-setenv.c signature.h macros.h \
-       setlocale.c test-setlocale1.sh test-setlocale1.c \
-       test-setlocale2.sh test-setlocale2.c signature.h macros.h \
-       test-sh-quote.c test-sigaction.c signature.h macros.h \
-       test-signal-h.c test-sigprocmask.c signature.h macros.h \
-       sleep.c test-sleep.c signature.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-regex.c macros.h same-inode.h 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 setlocale.c \
+       test-setlocale1.sh test-setlocale1.c test-setlocale2.sh \
+       test-setlocale2.c signature.h macros.h setsockopt.c w32sock.h \
+       test-setsockopt.c signature.h macros.h test-sh-quote.c \
+       test-sigaction.c signature.h macros.h test-signal-h.c \
+       test-sigprocmask.c signature.h macros.h sleep.c test-sleep.c \
+       signature.h macros.h \
        $(top_srcdir)/build-aux/snippet/_Noreturn.h \
        $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
        $(top_srcdir)/build-aux/snippet/c++defs.h \
        $(top_srcdir)/build-aux/snippet/unused-parameter.h \
        $(top_srcdir)/build-aux/snippet/warn-on-use.h snprintf.c \
-       test-snprintf.c signature.h macros.h test-stat.h test-stat.c \
-       signature.h macros.h test-stat-time.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 \
-       test-strftime.c macros.h test-striconv.c macros.h \
-       test-string.c test-strings.c test-strnlen.c zerosize-ptr.h \
-       signature.h macros.h test-strtoull.c signature.h macros.h \
-       test-strtoumax.c signature.h macros.h symlink.c test-symlink.h \
-       test-symlink.c signature.h macros.h test-sys_stat.c \
-       test-sys_time.c test-sys_types.c test-sys_wait.c \
-       test-sys_wait.h init.sh test-init.sh test-time.c test-unistd.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 stdalign.in.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-strftime.c \
+       macros.h test-striconv.c macros.h test-string.c test-strings.c \
+       test-strnlen.c zerosize-ptr.h signature.h macros.h \
+       test-strtoull.c signature.h macros.h test-strtoumax.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 \
+       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-time.c \
+       test-timespec.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 unsetenv.c test-unsetenv.c \
-       signature.h macros.h test-update-copyright.sh usleep.c \
-       test-usleep.c signature.h macros.h test-vasnprintf.c macros.h \
-       test-vasprintf.c signature.h macros.h \
-       test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
+       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 \
+       macros.h test-vc-list-files-git.sh test-vc-list-files-cvs.sh \
        test-verify.c test-verify.sh test-version-etc.c \
        test-version-etc.sh test-wchar.c test-wcrtomb.sh \
        test-wcrtomb.c test-wcrtomb-w32-1.sh test-wcrtomb-w32-2.sh \
@@ -2163,14 +2553,22 @@ EXTRA_DIST = test-alloca-opt.c test-areadlink.h test-areadlink.c \
 # statements but through direct file reference. Therefore this snippet must be
 # present in all Makefile.am that need it. This is ensured by the applicability
 # 'all' defined above.
-BUILT_SOURCES = arg-nonnull.h c++defs.h unused-parameter.h \
-       warn-on-use.h
+BUILT_SOURCES = arpa/inet.h $(NETINET_IN_H) arg-nonnull.h c++defs.h \
+       unused-parameter.h warn-on-use.h $(STDALIGN_H) sys/ioctl.h \
+       sys/select.h sys/socket.h sys/uio.h
 SUFFIXES = 
-MOSTLYCLEANFILES = core *.stackdump t-c-stack.tmp t-c-stack2.tmp \
+
+# This test expects compilation of test-verify.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 \
        arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \
        unused-parameter.h unused-parameter.h-t warn-on-use.h \
-       warn-on-use.h-t
-MOSTLYCLEANDIRS = 
+       warn-on-use.h-t stdalign.h stdalign.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.Tpo
+MOSTLYCLEANDIRS = arpa netinet sys sys sys sys
 CLEANFILES = 
 DISTCLEANFILES = 
 MAINTAINERCLEANFILES = 
@@ -2181,23 +2579,36 @@ AM_CPPFLAGS = \
   -I../lib -I$(srcdir)/../lib
 
 LDADD = libtests.a ../lib/libdiffutils.a libtests.a $(LIBTESTS_LIBDEPS)
-libtests_a_SOURCES = argmatch.c hash-pjw.h hash-pjw.c
+libtests_a_SOURCES = dtotimespec.c hash-pjw.h hash-pjw.c sockets.h \
+       sockets.c sys_socket.c timespec-add.c timespec-sub.c
 libtests_a_LIBADD = $(gltests_LIBOBJS)
 libtests_a_DEPENDENCIES = $(gltests_LIBOBJS)
-EXTRA_libtests_a_SOURCES = fdopen.c getcwd-lgpl.c getpagesize.c \
-       putenv.c setenv.c setlocale.c sleep.c snprintf.c symlink.c \
-       unsetenv.c usleep.c wctob.c wctomb.c
+EXTRA_libtests_a_SOURCES = accept.c bind.c connect.c fdopen.c \
+       ftruncate.c getcwd-lgpl.c getpagesize.c inet_pton.c ioctl.c \
+       listen.c nanosleep.c perror.c pipe.c putenv.c select.c \
+       setlocale.c setsockopt.c sleep.c snprintf.c socket.c \
+       strerror_r.c symlink.c wctob.c wctomb.c
 AM_LIBTOOLFLAGS = --preserve-dup-deps
+test_accept_LDADD = $(LDADD) @LIBSOCKET@
 test_argmatch_LDADD = $(LDADD) @LIBINTL@
+test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
 test_c_stack_LDADD = $(LDADD) $(LIBCSTACK) @LIBINTL@
+test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
 test_dirname_LDADD = $(LDADD) @LIBINTL@
-test_exclude_LDADD = $(LDADD) @LIBINTL@
+test_exclude_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD)
 test_filenamecat_LDADD = $(LDADD) @LIBINTL@
 test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL)
 test_getopt_LDADD = $(LDADD) $(LIBINTL)
 test_iconv_LDADD = $(LDADD) @LIBICONV@
+test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@
+test_listen_LDADD = $(LDADD) @LIBSOCKET@
+test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP)
 test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@
-test_regex_LDADD = $(LDADD) @LIBINTL@
+test_regex_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD) $(LIB_PTHREAD)
+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_setsockopt_LDADD = $(LDADD) @LIBSOCKET@
 test_sh_quote_LDADD = $(LDADD) @LIBINTL@
 
 # Because this Makefile snippet defines a variable used by other
@@ -2208,7 +2619,9 @@ ARG_NONNULL_H = arg-nonnull.h
 CXXDEFS_H = c++defs.h
 UNUSED_PARAMETER_H = unused-parameter.h
 WARN_ON_USE_H = warn-on-use.h
+test_sockets_LDADD = $(LDADD) @LIBSOCKET@
 test_stat_LDADD = $(LDADD) $(LIBINTL)
+test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
 test_striconv_LDADD = $(LDADD) @LIBICONV@
 test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c
 test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING)
@@ -2241,16 +2654,15 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configur
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gnulib-tests/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --foreign gnulib-tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
-$(srcdir)/gnulib.mk:
+$(srcdir)/gnulib.mk $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -2266,6 +2678,7 @@ clean-checkLIBRARIES:
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
 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)
@@ -2276,285 +2689,486 @@ clean-checkPROGRAMS:
 
 clean-noinstPROGRAMS:
        -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+
+test-accept$(EXEEXT): $(test_accept_OBJECTS) $(test_accept_DEPENDENCIES) $(EXTRA_test_accept_DEPENDENCIES) 
+       @rm -f test-accept$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_accept_OBJECTS) $(test_accept_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)
+
 test-areadlink$(EXEEXT): $(test_areadlink_OBJECTS) $(test_areadlink_DEPENDENCIES) $(EXTRA_test_areadlink_DEPENDENCIES) 
        @rm -f test-areadlink$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_areadlink_OBJECTS) $(test_areadlink_LDADD) $(LIBS)
+
 test-argmatch$(EXEEXT): $(test_argmatch_OBJECTS) $(test_argmatch_DEPENDENCIES) $(EXTRA_test_argmatch_DEPENDENCIES) 
        @rm -f test-argmatch$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_argmatch_OBJECTS) $(test_argmatch_LDADD) $(LIBS)
+
+test-arpa_inet$(EXEEXT): $(test_arpa_inet_OBJECTS) $(test_arpa_inet_DEPENDENCIES) $(EXTRA_test_arpa_inet_DEPENDENCIES) 
+       @rm -f test-arpa_inet$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_arpa_inet_OBJECTS) $(test_arpa_inet_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)
+
+test-bind$(EXEEXT): $(test_bind_OBJECTS) $(test_bind_DEPENDENCIES) $(EXTRA_test_bind_DEPENDENCIES) 
+       @rm -f test-bind$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_bind_OBJECTS) $(test_bind_LDADD) $(LIBS)
+
 test-bitrotate$(EXEEXT): $(test_bitrotate_OBJECTS) $(test_bitrotate_DEPENDENCIES) $(EXTRA_test_bitrotate_DEPENDENCIES) 
        @rm -f test-bitrotate$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_bitrotate_OBJECTS) $(test_bitrotate_LDADD) $(LIBS)
+
 test-btowc$(EXEEXT): $(test_btowc_OBJECTS) $(test_btowc_DEPENDENCIES) $(EXTRA_test_btowc_DEPENDENCIES) 
        @rm -f test-btowc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_btowc_OBJECTS) $(test_btowc_LDADD) $(LIBS)
+
 test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES) $(EXTRA_test_c_ctype_DEPENDENCIES) 
        @rm -f test-c-ctype$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_ctype_OBJECTS) $(test_c_ctype_LDADD) $(LIBS)
+
 test-c-stack$(EXEEXT): $(test_c_stack_OBJECTS) $(test_c_stack_DEPENDENCIES) $(EXTRA_test_c_stack_DEPENDENCIES) 
        @rm -f test-c-stack$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_stack_OBJECTS) $(test_c_stack_LDADD) $(LIBS)
+
 test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES) $(EXTRA_test_c_strcasecmp_DEPENDENCIES) 
        @rm -f test-c-strcasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS)
+
 test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) $(EXTRA_test_c_strncasecmp_DEPENDENCIES) 
        @rm -f test-c-strncasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS)
+
 test-close$(EXEEXT): $(test_close_OBJECTS) $(test_close_DEPENDENCIES) $(EXTRA_test_close_DEPENDENCIES) 
        @rm -f test-close$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_close_OBJECTS) $(test_close_LDADD) $(LIBS)
+
+test-connect$(EXEEXT): $(test_connect_OBJECTS) $(test_connect_DEPENDENCIES) $(EXTRA_test_connect_DEPENDENCIES) 
+       @rm -f test-connect$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_connect_OBJECTS) $(test_connect_LDADD) $(LIBS)
+
+test-ctype$(EXEEXT): $(test_ctype_OBJECTS) $(test_ctype_DEPENDENCIES) $(EXTRA_test_ctype_DEPENDENCIES) 
+       @rm -f test-ctype$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_ctype_OBJECTS) $(test_ctype_LDADD) $(LIBS)
+
 test-dirname$(EXEEXT): $(test_dirname_OBJECTS) $(test_dirname_DEPENDENCIES) $(EXTRA_test_dirname_DEPENDENCIES) 
        @rm -f test-dirname$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_dirname_OBJECTS) $(test_dirname_LDADD) $(LIBS)
+
 test-dup2$(EXEEXT): $(test_dup2_OBJECTS) $(test_dup2_DEPENDENCIES) $(EXTRA_test_dup2_DEPENDENCIES) 
        @rm -f test-dup2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_dup2_OBJECTS) $(test_dup2_LDADD) $(LIBS)
+
 test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) $(EXTRA_test_environ_DEPENDENCIES) 
        @rm -f test-environ$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS)
+
 test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) $(EXTRA_test_errno_DEPENDENCIES) 
        @rm -f test-errno$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_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)
+
 test-fcntl$(EXEEXT): $(test_fcntl_OBJECTS) $(test_fcntl_DEPENDENCIES) $(EXTRA_test_fcntl_DEPENDENCIES) 
        @rm -f test-fcntl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fcntl_OBJECTS) $(test_fcntl_LDADD) $(LIBS)
+
 test-fcntl-h$(EXEEXT): $(test_fcntl_h_OBJECTS) $(test_fcntl_h_DEPENDENCIES) $(EXTRA_test_fcntl_h_DEPENDENCIES) 
        @rm -f test-fcntl-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fcntl_h_OBJECTS) $(test_fcntl_h_LDADD) $(LIBS)
+
 test-fdopen$(EXEEXT): $(test_fdopen_OBJECTS) $(test_fdopen_DEPENDENCIES) $(EXTRA_test_fdopen_DEPENDENCIES) 
        @rm -f test-fdopen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fdopen_OBJECTS) $(test_fdopen_LDADD) $(LIBS)
+
 test-fgetc$(EXEEXT): $(test_fgetc_OBJECTS) $(test_fgetc_DEPENDENCIES) $(EXTRA_test_fgetc_DEPENDENCIES) 
        @rm -f test-fgetc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fgetc_OBJECTS) $(test_fgetc_LDADD) $(LIBS)
+
 test-filenamecat$(EXEEXT): $(test_filenamecat_OBJECTS) $(test_filenamecat_DEPENDENCIES) $(EXTRA_test_filenamecat_DEPENDENCIES) 
        @rm -f test-filenamecat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_filenamecat_OBJECTS) $(test_filenamecat_LDADD) $(LIBS)
+
 test-float$(EXEEXT): $(test_float_OBJECTS) $(test_float_DEPENDENCIES) $(EXTRA_test_float_DEPENDENCIES) 
        @rm -f test-float$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_float_OBJECTS) $(test_float_LDADD) $(LIBS)
+
 test-fnmatch$(EXEEXT): $(test_fnmatch_OBJECTS) $(test_fnmatch_DEPENDENCIES) $(EXTRA_test_fnmatch_DEPENDENCIES) 
        @rm -f test-fnmatch$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fnmatch_OBJECTS) $(test_fnmatch_LDADD) $(LIBS)
+
 test-fputc$(EXEEXT): $(test_fputc_OBJECTS) $(test_fputc_DEPENDENCIES) $(EXTRA_test_fputc_DEPENDENCIES) 
        @rm -f test-fputc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fputc_OBJECTS) $(test_fputc_LDADD) $(LIBS)
+
 test-fread$(EXEEXT): $(test_fread_OBJECTS) $(test_fread_DEPENDENCIES) $(EXTRA_test_fread_DEPENDENCIES) 
        @rm -f test-fread$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fread_OBJECTS) $(test_fread_LDADD) $(LIBS)
+
 test-freopen$(EXEEXT): $(test_freopen_OBJECTS) $(test_freopen_DEPENDENCIES) $(EXTRA_test_freopen_DEPENDENCIES) 
        @rm -f test-freopen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_freopen_OBJECTS) $(test_freopen_LDADD) $(LIBS)
+
 test-freopen-safer$(EXEEXT): $(test_freopen_safer_OBJECTS) $(test_freopen_safer_DEPENDENCIES) $(EXTRA_test_freopen_safer_DEPENDENCIES) 
        @rm -f test-freopen-safer$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_freopen_safer_OBJECTS) $(test_freopen_safer_LDADD) $(LIBS)
+
 test-fstat$(EXEEXT): $(test_fstat_OBJECTS) $(test_fstat_DEPENDENCIES) $(EXTRA_test_fstat_DEPENDENCIES) 
        @rm -f test-fstat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fstat_OBJECTS) $(test_fstat_LDADD) $(LIBS)
+
+test-ftruncate$(EXEEXT): $(test_ftruncate_OBJECTS) $(test_ftruncate_DEPENDENCIES) $(EXTRA_test_ftruncate_DEPENDENCIES) 
+       @rm -f test-ftruncate$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_ftruncate_OBJECTS) $(test_ftruncate_LDADD) $(LIBS)
+
 test-fwrite$(EXEEXT): $(test_fwrite_OBJECTS) $(test_fwrite_DEPENDENCIES) $(EXTRA_test_fwrite_DEPENDENCIES) 
        @rm -f test-fwrite$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_fwrite_OBJECTS) $(test_fwrite_LDADD) $(LIBS)
+
 test-getcwd-lgpl$(EXEEXT): $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_DEPENDENCIES) $(EXTRA_test_getcwd_lgpl_DEPENDENCIES) 
        @rm -f test-getcwd-lgpl$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_LDADD) $(LIBS)
+
 test-getdtablesize$(EXEEXT): $(test_getdtablesize_OBJECTS) $(test_getdtablesize_DEPENDENCIES) $(EXTRA_test_getdtablesize_DEPENDENCIES) 
        @rm -f test-getdtablesize$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_getdtablesize_OBJECTS) $(test_getdtablesize_LDADD) $(LIBS)
+
 test-getopt$(EXEEXT): $(test_getopt_OBJECTS) $(test_getopt_DEPENDENCIES) $(EXTRA_test_getopt_DEPENDENCIES) 
        @rm -f test-getopt$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_getopt_OBJECTS) $(test_getopt_LDADD) $(LIBS)
+
 test-gettimeofday$(EXEEXT): $(test_gettimeofday_OBJECTS) $(test_gettimeofday_DEPENDENCIES) $(EXTRA_test_gettimeofday_DEPENDENCIES) 
        @rm -f test-gettimeofday$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_gettimeofday_OBJECTS) $(test_gettimeofday_LDADD) $(LIBS)
+
 test-hash$(EXEEXT): $(test_hash_OBJECTS) $(test_hash_DEPENDENCIES) $(EXTRA_test_hash_DEPENDENCIES) 
        @rm -f test-hash$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_hash_OBJECTS) $(test_hash_LDADD) $(LIBS)
+
 test-iconv$(EXEEXT): $(test_iconv_OBJECTS) $(test_iconv_DEPENDENCIES) $(EXTRA_test_iconv_DEPENDENCIES) 
        @rm -f test-iconv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_iconv_OBJECTS) $(test_iconv_LDADD) $(LIBS)
+
 test-iconv-h$(EXEEXT): $(test_iconv_h_OBJECTS) $(test_iconv_h_DEPENDENCIES) $(EXTRA_test_iconv_h_DEPENDENCIES) 
        @rm -f test-iconv-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_iconv_h_OBJECTS) $(test_iconv_h_LDADD) $(LIBS)
+
 test-ignore-value$(EXEEXT): $(test_ignore_value_OBJECTS) $(test_ignore_value_DEPENDENCIES) $(EXTRA_test_ignore_value_DEPENDENCIES) 
        @rm -f test-ignore-value$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_ignore_value_OBJECTS) $(test_ignore_value_LDADD) $(LIBS)
+
+test-inet_pton$(EXEEXT): $(test_inet_pton_OBJECTS) $(test_inet_pton_DEPENDENCIES) $(EXTRA_test_inet_pton_DEPENDENCIES) 
+       @rm -f test-inet_pton$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_inet_pton_OBJECTS) $(test_inet_pton_LDADD) $(LIBS)
+
 test-intprops$(EXEEXT): $(test_intprops_OBJECTS) $(test_intprops_DEPENDENCIES) $(EXTRA_test_intprops_DEPENDENCIES) 
        @rm -f test-intprops$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_intprops_OBJECTS) $(test_intprops_LDADD) $(LIBS)
+
 test-inttostr$(EXEEXT): $(test_inttostr_OBJECTS) $(test_inttostr_DEPENDENCIES) $(EXTRA_test_inttostr_DEPENDENCIES) 
        @rm -f test-inttostr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_inttostr_OBJECTS) $(test_inttostr_LDADD) $(LIBS)
+
 test-inttypes$(EXEEXT): $(test_inttypes_OBJECTS) $(test_inttypes_DEPENDENCIES) $(EXTRA_test_inttypes_DEPENDENCIES) 
        @rm -f test-inttypes$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_inttypes_OBJECTS) $(test_inttypes_LDADD) $(LIBS)
+
+test-ioctl$(EXEEXT): $(test_ioctl_OBJECTS) $(test_ioctl_DEPENDENCIES) $(EXTRA_test_ioctl_DEPENDENCIES) 
+       @rm -f test-ioctl$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_ioctl_OBJECTS) $(test_ioctl_LDADD) $(LIBS)
+
+test-isblank$(EXEEXT): $(test_isblank_OBJECTS) $(test_isblank_DEPENDENCIES) $(EXTRA_test_isblank_DEPENDENCIES) 
+       @rm -f test-isblank$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_isblank_OBJECTS) $(test_isblank_LDADD) $(LIBS)
+
 test-iswblank$(EXEEXT): $(test_iswblank_OBJECTS) $(test_iswblank_DEPENDENCIES) $(EXTRA_test_iswblank_DEPENDENCIES) 
        @rm -f test-iswblank$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_iswblank_OBJECTS) $(test_iswblank_LDADD) $(LIBS)
+
 test-langinfo$(EXEEXT): $(test_langinfo_OBJECTS) $(test_langinfo_DEPENDENCIES) $(EXTRA_test_langinfo_DEPENDENCIES) 
        @rm -f test-langinfo$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_langinfo_OBJECTS) $(test_langinfo_LDADD) $(LIBS)
+
+test-listen$(EXEEXT): $(test_listen_OBJECTS) $(test_listen_DEPENDENCIES) $(EXTRA_test_listen_DEPENDENCIES) 
+       @rm -f test-listen$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_listen_OBJECTS) $(test_listen_LDADD) $(LIBS)
+
 test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) $(EXTRA_test_locale_DEPENDENCIES) 
        @rm -f test-locale$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS)
+
 test-localeconv$(EXEEXT): $(test_localeconv_OBJECTS) $(test_localeconv_DEPENDENCIES) $(EXTRA_test_localeconv_DEPENDENCIES) 
        @rm -f test-localeconv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_localeconv_OBJECTS) $(test_localeconv_LDADD) $(LIBS)
+
 test-lstat$(EXEEXT): $(test_lstat_OBJECTS) $(test_lstat_DEPENDENCIES) $(EXTRA_test_lstat_DEPENDENCIES) 
        @rm -f test-lstat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_lstat_OBJECTS) $(test_lstat_LDADD) $(LIBS)
-test-malloc-gnu$(EXEEXT): $(test_malloc_gnu_OBJECTS) $(test_malloc_gnu_DEPENDENCIES) $(EXTRA_test_malloc_gnu_DEPENDENCIES) 
-       @rm -f test-malloc-gnu$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_malloc_gnu_OBJECTS) $(test_malloc_gnu_LDADD) $(LIBS)
+
 test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) $(EXTRA_test_malloca_DEPENDENCIES) 
        @rm -f test-malloca$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS)
+
 test-mbrtowc$(EXEEXT): $(test_mbrtowc_OBJECTS) $(test_mbrtowc_DEPENDENCIES) $(EXTRA_test_mbrtowc_DEPENDENCIES) 
        @rm -f test-mbrtowc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbrtowc_OBJECTS) $(test_mbrtowc_LDADD) $(LIBS)
+
 test-mbrtowc-w32$(EXEEXT): $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_DEPENDENCIES) $(EXTRA_test_mbrtowc_w32_DEPENDENCIES) 
        @rm -f test-mbrtowc-w32$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbrtowc_w32_OBJECTS) $(test_mbrtowc_w32_LDADD) $(LIBS)
+
 test-mbscasecmp$(EXEEXT): $(test_mbscasecmp_OBJECTS) $(test_mbscasecmp_DEPENDENCIES) $(EXTRA_test_mbscasecmp_DEPENDENCIES) 
        @rm -f test-mbscasecmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbscasecmp_OBJECTS) $(test_mbscasecmp_LDADD) $(LIBS)
+
 test-mbsinit$(EXEEXT): $(test_mbsinit_OBJECTS) $(test_mbsinit_DEPENDENCIES) $(EXTRA_test_mbsinit_DEPENDENCIES) 
        @rm -f test-mbsinit$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsinit_OBJECTS) $(test_mbsinit_LDADD) $(LIBS)
+
 test-mbsrtowcs$(EXEEXT): $(test_mbsrtowcs_OBJECTS) $(test_mbsrtowcs_DEPENDENCIES) $(EXTRA_test_mbsrtowcs_DEPENDENCIES) 
        @rm -f test-mbsrtowcs$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsrtowcs_OBJECTS) $(test_mbsrtowcs_LDADD) $(LIBS)
+
 test-mbsstr1$(EXEEXT): $(test_mbsstr1_OBJECTS) $(test_mbsstr1_DEPENDENCIES) $(EXTRA_test_mbsstr1_DEPENDENCIES) 
        @rm -f test-mbsstr1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsstr1_OBJECTS) $(test_mbsstr1_LDADD) $(LIBS)
+
 test-mbsstr2$(EXEEXT): $(test_mbsstr2_OBJECTS) $(test_mbsstr2_DEPENDENCIES) $(EXTRA_test_mbsstr2_DEPENDENCIES) 
        @rm -f test-mbsstr2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsstr2_OBJECTS) $(test_mbsstr2_LDADD) $(LIBS)
+
 test-mbsstr3$(EXEEXT): $(test_mbsstr3_OBJECTS) $(test_mbsstr3_DEPENDENCIES) $(EXTRA_test_mbsstr3_DEPENDENCIES) 
        @rm -f test-mbsstr3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_mbsstr3_OBJECTS) $(test_mbsstr3_LDADD) $(LIBS)
+
 test-memchr$(EXEEXT): $(test_memchr_OBJECTS) $(test_memchr_DEPENDENCIES) $(EXTRA_test_memchr_DEPENDENCIES) 
        @rm -f test-memchr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_memchr_OBJECTS) $(test_memchr_LDADD) $(LIBS)
+
+test-nanosleep$(EXEEXT): $(test_nanosleep_OBJECTS) $(test_nanosleep_DEPENDENCIES) $(EXTRA_test_nanosleep_DEPENDENCIES) 
+       @rm -f test-nanosleep$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_nanosleep_OBJECTS) $(test_nanosleep_LDADD) $(LIBS)
+
+test-netinet_in$(EXEEXT): $(test_netinet_in_OBJECTS) $(test_netinet_in_DEPENDENCIES) $(EXTRA_test_netinet_in_DEPENDENCIES) 
+       @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-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)
+
 test-pathmax$(EXEEXT): $(test_pathmax_OBJECTS) $(test_pathmax_DEPENDENCIES) $(EXTRA_test_pathmax_DEPENDENCIES) 
        @rm -f test-pathmax$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_pathmax_OBJECTS) $(test_pathmax_LDADD) $(LIBS)
+
+test-perror$(EXEEXT): $(test_perror_OBJECTS) $(test_perror_DEPENDENCIES) $(EXTRA_test_perror_DEPENDENCIES) 
+       @rm -f test-perror$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_perror_OBJECTS) $(test_perror_LDADD) $(LIBS)
+
+test-perror2$(EXEEXT): $(test_perror2_OBJECTS) $(test_perror2_DEPENDENCIES) $(EXTRA_test_perror2_DEPENDENCIES) 
+       @rm -f test-perror2$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_perror2_OBJECTS) $(test_perror2_LDADD) $(LIBS)
+
+test-pipe$(EXEEXT): $(test_pipe_OBJECTS) $(test_pipe_DEPENDENCIES) $(EXTRA_test_pipe_DEPENDENCIES) 
+       @rm -f test-pipe$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_pipe_OBJECTS) $(test_pipe_LDADD) $(LIBS)
+
 test-quotearg-simple$(EXEEXT): $(test_quotearg_simple_OBJECTS) $(test_quotearg_simple_DEPENDENCIES) $(EXTRA_test_quotearg_simple_DEPENDENCIES) 
        @rm -f test-quotearg-simple$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_quotearg_simple_OBJECTS) $(test_quotearg_simple_LDADD) $(LIBS)
+
 test-raise$(EXEEXT): $(test_raise_OBJECTS) $(test_raise_DEPENDENCIES) $(EXTRA_test_raise_DEPENDENCIES) 
        @rm -f test-raise$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_raise_OBJECTS) $(test_raise_LDADD) $(LIBS)
+
+test-rawmemchr$(EXEEXT): $(test_rawmemchr_OBJECTS) $(test_rawmemchr_DEPENDENCIES) $(EXTRA_test_rawmemchr_DEPENDENCIES) 
+       @rm -f test-rawmemchr$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_rawmemchr_OBJECTS) $(test_rawmemchr_LDADD) $(LIBS)
+
 test-readlink$(EXEEXT): $(test_readlink_OBJECTS) $(test_readlink_DEPENDENCIES) $(EXTRA_test_readlink_DEPENDENCIES) 
        @rm -f test-readlink$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_readlink_OBJECTS) $(test_readlink_LDADD) $(LIBS)
+
 test-regex$(EXEEXT): $(test_regex_OBJECTS) $(test_regex_DEPENDENCIES) $(EXTRA_test_regex_DEPENDENCIES) 
        @rm -f test-regex$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_regex_OBJECTS) $(test_regex_LDADD) $(LIBS)
+
+test-select$(EXEEXT): $(test_select_OBJECTS) $(test_select_DEPENDENCIES) $(EXTRA_test_select_DEPENDENCIES) 
+       @rm -f test-select$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_select_OBJECTS) $(test_select_LDADD) $(LIBS)
+
+test-select-fd$(EXEEXT): $(test_select_fd_OBJECTS) $(test_select_fd_DEPENDENCIES) $(EXTRA_test_select_fd_DEPENDENCIES) 
+       @rm -f test-select-fd$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_select_fd_OBJECTS) $(test_select_fd_LDADD) $(LIBS)
+
+test-select-stdin$(EXEEXT): $(test_select_stdin_OBJECTS) $(test_select_stdin_DEPENDENCIES) $(EXTRA_test_select_stdin_DEPENDENCIES) 
+       @rm -f test-select-stdin$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_select_stdin_OBJECTS) $(test_select_stdin_LDADD) $(LIBS)
+
 test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) $(EXTRA_test_setenv_DEPENDENCIES) 
        @rm -f test-setenv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_setenv_OBJECTS) $(test_setenv_LDADD) $(LIBS)
+
 test-setlocale1$(EXEEXT): $(test_setlocale1_OBJECTS) $(test_setlocale1_DEPENDENCIES) $(EXTRA_test_setlocale1_DEPENDENCIES) 
        @rm -f test-setlocale1$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_setlocale1_OBJECTS) $(test_setlocale1_LDADD) $(LIBS)
+
 test-setlocale2$(EXEEXT): $(test_setlocale2_OBJECTS) $(test_setlocale2_DEPENDENCIES) $(EXTRA_test_setlocale2_DEPENDENCIES) 
        @rm -f test-setlocale2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_setlocale2_OBJECTS) $(test_setlocale2_LDADD) $(LIBS)
+
+test-setsockopt$(EXEEXT): $(test_setsockopt_OBJECTS) $(test_setsockopt_DEPENDENCIES) $(EXTRA_test_setsockopt_DEPENDENCIES) 
+       @rm -f test-setsockopt$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_setsockopt_OBJECTS) $(test_setsockopt_LDADD) $(LIBS)
+
 test-sh-quote$(EXEEXT): $(test_sh_quote_OBJECTS) $(test_sh_quote_DEPENDENCIES) $(EXTRA_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)
+
 test-sigprocmask$(EXEEXT): $(test_sigprocmask_OBJECTS) $(test_sigprocmask_DEPENDENCIES) $(EXTRA_test_sigprocmask_DEPENDENCIES) 
        @rm -f test-sigprocmask$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sigprocmask_OBJECTS) $(test_sigprocmask_LDADD) $(LIBS)
+
 test-sleep$(EXEEXT): $(test_sleep_OBJECTS) $(test_sleep_DEPENDENCIES) $(EXTRA_test_sleep_DEPENDENCIES) 
        @rm -f test-sleep$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sleep_OBJECTS) $(test_sleep_LDADD) $(LIBS)
+
 test-snprintf$(EXEEXT): $(test_snprintf_OBJECTS) $(test_snprintf_DEPENDENCIES) $(EXTRA_test_snprintf_DEPENDENCIES) 
        @rm -f test-snprintf$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_snprintf_OBJECTS) $(test_snprintf_LDADD) $(LIBS)
+
+test-sockets$(EXEEXT): $(test_sockets_OBJECTS) $(test_sockets_DEPENDENCIES) $(EXTRA_test_sockets_DEPENDENCIES) 
+       @rm -f test-sockets$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sockets_OBJECTS) $(test_sockets_LDADD) $(LIBS)
+
 test-stat$(EXEEXT): $(test_stat_OBJECTS) $(test_stat_DEPENDENCIES) $(EXTRA_test_stat_DEPENDENCIES) 
        @rm -f test-stat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stat_OBJECTS) $(test_stat_LDADD) $(LIBS)
+
 test-stat-time$(EXEEXT): $(test_stat_time_OBJECTS) $(test_stat_time_DEPENDENCIES) $(EXTRA_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-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) 
        @rm -f test-stddef$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS)
+
 test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) $(EXTRA_test_stdint_DEPENDENCIES) 
        @rm -f test-stdint$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS)
+
 test-stdio$(EXEEXT): $(test_stdio_OBJECTS) $(test_stdio_DEPENDENCIES) $(EXTRA_test_stdio_DEPENDENCIES) 
        @rm -f test-stdio$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdio_OBJECTS) $(test_stdio_LDADD) $(LIBS)
+
 test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES) $(EXTRA_test_stdlib_DEPENDENCIES) 
        @rm -f test-stdlib$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_stdlib_OBJECTS) $(test_stdlib_LDADD) $(LIBS)
+
 test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES) $(EXTRA_test_strerror_DEPENDENCIES) 
        @rm -f test-strerror$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strerror_OBJECTS) $(test_strerror_LDADD) $(LIBS)
+
+test-strerror_r$(EXEEXT): $(test_strerror_r_OBJECTS) $(test_strerror_r_DEPENDENCIES) $(EXTRA_test_strerror_r_DEPENDENCIES) 
+       @rm -f test-strerror_r$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_strerror_r_OBJECTS) $(test_strerror_r_LDADD) $(LIBS)
+
 test-strftime$(EXEEXT): $(test_strftime_OBJECTS) $(test_strftime_DEPENDENCIES) $(EXTRA_test_strftime_DEPENDENCIES) 
        @rm -f test-strftime$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strftime_OBJECTS) $(test_strftime_LDADD) $(LIBS)
+
 test-striconv$(EXEEXT): $(test_striconv_OBJECTS) $(test_striconv_DEPENDENCIES) $(EXTRA_test_striconv_DEPENDENCIES) 
        @rm -f test-striconv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_striconv_OBJECTS) $(test_striconv_LDADD) $(LIBS)
+
 test-string$(EXEEXT): $(test_string_OBJECTS) $(test_string_DEPENDENCIES) $(EXTRA_test_string_DEPENDENCIES) 
        @rm -f test-string$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_string_OBJECTS) $(test_string_LDADD) $(LIBS)
+
 test-strings$(EXEEXT): $(test_strings_OBJECTS) $(test_strings_DEPENDENCIES) $(EXTRA_test_strings_DEPENDENCIES) 
        @rm -f test-strings$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strings_OBJECTS) $(test_strings_LDADD) $(LIBS)
+
 test-strnlen$(EXEEXT): $(test_strnlen_OBJECTS) $(test_strnlen_DEPENDENCIES) $(EXTRA_test_strnlen_DEPENDENCIES) 
        @rm -f test-strnlen$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strnlen_OBJECTS) $(test_strnlen_LDADD) $(LIBS)
+
 test-strtoull$(EXEEXT): $(test_strtoull_OBJECTS) $(test_strtoull_DEPENDENCIES) $(EXTRA_test_strtoull_DEPENDENCIES) 
        @rm -f test-strtoull$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strtoull_OBJECTS) $(test_strtoull_LDADD) $(LIBS)
+
 test-strtoumax$(EXEEXT): $(test_strtoumax_OBJECTS) $(test_strtoumax_DEPENDENCIES) $(EXTRA_test_strtoumax_DEPENDENCIES) 
        @rm -f test-strtoumax$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_strtoumax_OBJECTS) $(test_strtoumax_LDADD) $(LIBS)
+
 test-symlink$(EXEEXT): $(test_symlink_OBJECTS) $(test_symlink_DEPENDENCIES) $(EXTRA_test_symlink_DEPENDENCIES) 
        @rm -f test-symlink$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_symlink_OBJECTS) $(test_symlink_LDADD) $(LIBS)
+
+test-sys_ioctl$(EXEEXT): $(test_sys_ioctl_OBJECTS) $(test_sys_ioctl_DEPENDENCIES) $(EXTRA_test_sys_ioctl_DEPENDENCIES) 
+       @rm -f test-sys_ioctl$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sys_ioctl_OBJECTS) $(test_sys_ioctl_LDADD) $(LIBS)
+
+test-sys_select$(EXEEXT): $(test_sys_select_OBJECTS) $(test_sys_select_DEPENDENCIES) $(EXTRA_test_sys_select_DEPENDENCIES) 
+       @rm -f test-sys_select$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sys_select_OBJECTS) $(test_sys_select_LDADD) $(LIBS)
+
+test-sys_socket$(EXEEXT): $(test_sys_socket_OBJECTS) $(test_sys_socket_DEPENDENCIES) $(EXTRA_test_sys_socket_DEPENDENCIES) 
+       @rm -f test-sys_socket$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sys_socket_OBJECTS) $(test_sys_socket_LDADD) $(LIBS)
+
 test-sys_stat$(EXEEXT): $(test_sys_stat_OBJECTS) $(test_sys_stat_DEPENDENCIES) $(EXTRA_test_sys_stat_DEPENDENCIES) 
        @rm -f test-sys_stat$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sys_stat_OBJECTS) $(test_sys_stat_LDADD) $(LIBS)
+
 test-sys_time$(EXEEXT): $(test_sys_time_OBJECTS) $(test_sys_time_DEPENDENCIES) $(EXTRA_test_sys_time_DEPENDENCIES) 
        @rm -f test-sys_time$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sys_time_OBJECTS) $(test_sys_time_LDADD) $(LIBS)
+
 test-sys_types$(EXEEXT): $(test_sys_types_OBJECTS) $(test_sys_types_DEPENDENCIES) $(EXTRA_test_sys_types_DEPENDENCIES) 
        @rm -f test-sys_types$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sys_types_OBJECTS) $(test_sys_types_LDADD) $(LIBS)
+
+test-sys_uio$(EXEEXT): $(test_sys_uio_OBJECTS) $(test_sys_uio_DEPENDENCIES) $(EXTRA_test_sys_uio_DEPENDENCIES) 
+       @rm -f test-sys_uio$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(test_sys_uio_OBJECTS) $(test_sys_uio_LDADD) $(LIBS)
+
 test-sys_wait$(EXEEXT): $(test_sys_wait_OBJECTS) $(test_sys_wait_DEPENDENCIES) $(EXTRA_test_sys_wait_DEPENDENCIES) 
        @rm -f test-sys_wait$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_sys_wait_OBJECTS) $(test_sys_wait_LDADD) $(LIBS)
+
 test-time$(EXEEXT): $(test_time_OBJECTS) $(test_time_DEPENDENCIES) $(EXTRA_test_time_DEPENDENCIES) 
        @rm -f test-time$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_time_OBJECTS) $(test_time_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)
 unistr/$(am__dirstamp):
        @$(MKDIR_P) unistr
        @: > unistr/$(am__dirstamp)
@@ -2563,11 +3177,13 @@ unistr/$(DEPDIR)/$(am__dirstamp):
        @: > unistr/$(DEPDIR)/$(am__dirstamp)
 unistr/test-u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
+
 test-u8-mbtoucr$(EXEEXT): $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_DEPENDENCIES) $(EXTRA_test_u8_mbtoucr_DEPENDENCIES) 
        @rm -f test-u8-mbtoucr$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_LDADD) $(LIBS)
 unistr/test-u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
        unistr/$(DEPDIR)/$(am__dirstamp)
+
 test-u8-uctomb$(EXEEXT): $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_DEPENDENCIES) $(EXTRA_test_u8_uctomb_DEPENDENCIES) 
        @rm -f test-u8-uctomb$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_LDADD) $(LIBS)
@@ -2579,62 +3195,77 @@ uniwidth/$(DEPDIR)/$(am__dirstamp):
        @: > uniwidth/$(DEPDIR)/$(am__dirstamp)
 uniwidth/test-uc_width.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
+
 test-uc_width$(EXEEXT): $(test_uc_width_OBJECTS) $(test_uc_width_DEPENDENCIES) $(EXTRA_test_uc_width_DEPENDENCIES) 
        @rm -f test-uc_width$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_width_OBJECTS) $(test_uc_width_LDADD) $(LIBS)
 uniwidth/test-uc_width2.$(OBJEXT): uniwidth/$(am__dirstamp) \
        uniwidth/$(DEPDIR)/$(am__dirstamp)
+
 test-uc_width2$(EXEEXT): $(test_uc_width2_OBJECTS) $(test_uc_width2_DEPENDENCIES) $(EXTRA_test_uc_width2_DEPENDENCIES) 
        @rm -f test-uc_width2$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_uc_width2_OBJECTS) $(test_uc_width2_LDADD) $(LIBS)
+
 test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES) $(EXTRA_test_unistd_DEPENDENCIES) 
        @rm -f test-unistd$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_unistd_OBJECTS) $(test_unistd_LDADD) $(LIBS)
+
 test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) $(EXTRA_test_unsetenv_DEPENDENCIES) 
        @rm -f test-unsetenv$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_unsetenv_OBJECTS) $(test_unsetenv_LDADD) $(LIBS)
-test-usleep$(EXEEXT): $(test_usleep_OBJECTS) $(test_usleep_DEPENDENCIES) $(EXTRA_test_usleep_DEPENDENCIES) 
-       @rm -f test-usleep$(EXEEXT)
-       $(AM_V_CCLD)$(LINK) $(test_usleep_OBJECTS) $(test_usleep_LDADD) $(LIBS)
+
 test-vasnprintf$(EXEEXT): $(test_vasnprintf_OBJECTS) $(test_vasnprintf_DEPENDENCIES) $(EXTRA_test_vasnprintf_DEPENDENCIES) 
        @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)
+
 test-version-etc$(EXEEXT): $(test_version_etc_OBJECTS) $(test_version_etc_DEPENDENCIES) $(EXTRA_test_version_etc_DEPENDENCIES) 
        @rm -f test-version-etc$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_version_etc_OBJECTS) $(test_version_etc_LDADD) $(LIBS)
+
 test-wchar$(EXEEXT): $(test_wchar_OBJECTS) $(test_wchar_DEPENDENCIES) $(EXTRA_test_wchar_DEPENDENCIES) 
        @rm -f test-wchar$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wchar_OBJECTS) $(test_wchar_LDADD) $(LIBS)
+
 test-wcrtomb$(EXEEXT): $(test_wcrtomb_OBJECTS) $(test_wcrtomb_DEPENDENCIES) $(EXTRA_test_wcrtomb_DEPENDENCIES) 
        @rm -f test-wcrtomb$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wcrtomb_OBJECTS) $(test_wcrtomb_LDADD) $(LIBS)
+
 test-wcrtomb-w32$(EXEEXT): $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_DEPENDENCIES) $(EXTRA_test_wcrtomb_w32_DEPENDENCIES) 
        @rm -f test-wcrtomb-w32$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wcrtomb_w32_OBJECTS) $(test_wcrtomb_w32_LDADD) $(LIBS)
+
 test-wctype-h$(EXEEXT): $(test_wctype_h_OBJECTS) $(test_wctype_h_DEPENDENCIES) $(EXTRA_test_wctype_h_DEPENDENCIES) 
        @rm -f test-wctype-h$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wctype_h_OBJECTS) $(test_wctype_h_LDADD) $(LIBS)
+
 test-wcwidth$(EXEEXT): $(test_wcwidth_OBJECTS) $(test_wcwidth_DEPENDENCIES) $(EXTRA_test_wcwidth_DEPENDENCIES) 
        @rm -f test-wcwidth$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_wcwidth_OBJECTS) $(test_wcwidth_LDADD) $(LIBS)
+
 test-xalloc-die$(EXEEXT): $(test_xalloc_die_OBJECTS) $(test_xalloc_die_DEPENDENCIES) $(EXTRA_test_xalloc_die_DEPENDENCIES) 
        @rm -f test-xalloc-die$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xalloc_die_OBJECTS) $(test_xalloc_die_LDADD) $(LIBS)
+
 test-xstrtol$(EXEEXT): $(test_xstrtol_OBJECTS) $(test_xstrtol_DEPENDENCIES) $(EXTRA_test_xstrtol_DEPENDENCIES) 
        @rm -f test-xstrtol$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xstrtol_OBJECTS) $(test_xstrtol_LDADD) $(LIBS)
+
 test-xstrtoul$(EXEEXT): $(test_xstrtoul_OBJECTS) $(test_xstrtoul_DEPENDENCIES) $(EXTRA_test_xstrtoul_DEPENDENCIES) 
        @rm -f test-xstrtoul$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xstrtoul_OBJECTS) $(test_xstrtoul_LDADD) $(LIBS)
+
 test-xstrtoumax$(EXEEXT): $(test_xstrtoumax_OBJECTS) $(test_xstrtoumax_DEPENDENCIES) $(EXTRA_test_xstrtoumax_DEPENDENCIES) 
        @rm -f test-xstrtoumax$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(test_xstrtoumax_OBJECTS) $(test_xstrtoumax_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)
@@ -2647,151 +3278,200 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpagesize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash-pjw.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/snprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-areadlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-argmatch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-binary-io.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-bitrotate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-btowc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-stack.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-close.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dirname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dup2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-exclude.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl-h.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fcntl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdopen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-filenamecat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-float.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fnmatch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-freopen-safer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-freopen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fstat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fwrite.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getcwd-lgpl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdtablesize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getopt.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-gettimeofday.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-hash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv-h.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ignore-value.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iswblank.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-langinfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localeconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lstat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloc-gnu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc-w32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbscasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsinit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsrtowcs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr3.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-nl_langinfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-open.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pathmax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-quotearg-simple.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-raise.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-readlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-regex.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sh-quote.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigaction.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-signal-h.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sigprocmask.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sleep.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-snprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat-time.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdio.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strftime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strings.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strnlen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strtoull.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strtoumax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_stat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_time.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_wait.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-time.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-usleep.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasnprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-vasprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-etc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wchar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb-w32.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype-h.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcwidth.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xalloc-die.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtol.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtoul.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xstrtoumax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xvasprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/usleep.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctob.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctomb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-mbtoucr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-uctomb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept.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)/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)/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)/getpagesize.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)/listen.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)/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)/setlocale.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)/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
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockets.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror_r.Po@am__quote@ # am--include-marker
+@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-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-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
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-btowc.Po@am__quote@ # am--include-marker
+@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-strncasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-close.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-connect.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ctype.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dirname.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dup2.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-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
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-filenamecat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-float.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fnmatch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-freopen-safer.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-freopen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fstat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ftruncate.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fwrite.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getcwd-lgpl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdtablesize.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getopt.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-gettimeofday.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-hash.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv-h.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ignore-value.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inet_pton.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttostr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ioctl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-isblank.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iswblank.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-listen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localeconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lstat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc-w32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbrtowc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbscasecmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsinit.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsrtowcs.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr2.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-mbsstr3.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-memchr.Po@am__quote@ # am--include-marker
+@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.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-quotearg-simple.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-raise.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-rawmemchr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-readlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-regex.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select-fd.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select-stdin.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-select.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale1.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale2.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-sleep.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-snprintf.Po@am__quote@ # am--include-marker
+@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-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
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror_r.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strftime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-string.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strings.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strnlen.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strtoull.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strtoumax.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlink.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_ioctl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_select.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_socket.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_stat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_time.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_uio.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_wait.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-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.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-etc.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wchar.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb-w32.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcrtomb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wctype-h.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-wcwidth.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-xalloc-die.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-xstrtoumax.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)/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)/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@unistr/$(DEPDIR)/test-u8-mbtoucr.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-uctomb.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@uniwidth/$(DEPDIR)/test-uc_width2.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
-@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $<; \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@  $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
-@am__fastdepCC_TRUE@   $(am__mv) $$depbase.Tpo $$depbase.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $$($(CYGPATH_W) $<); \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@  $$($(CYGPATH_W) $<)
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run 'make' without going through this Makefile.
@@ -2800,13 +3480,12 @@ distclean-compile:
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
 $(am__recursive_targets):
-       @fail= failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
        case "$@" in \
@@ -2902,7 +3581,7 @@ distclean-tags:
        $(MAKE) $(AM_MAKEFLAGS) $<
 
 # Leading 'am--fnord' is there to ensure the list of targets does not
-# exand to empty, as could happen e.g. with make check TESTS=''.
+# expand to empty, as could happen e.g. with make check TESTS=''.
 am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
 am--force-recheck:
        @:
@@ -2923,7 +3602,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        if test -n "$$am__remaking_logs"; then \
          echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
               "recursion detected" >&2; \
-       else \
+       elif test -n "$$redo_logs"; then \
          am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
        fi; \
        if $(am__make_dryrun); then :; else \
@@ -3034,6 +3713,13 @@ recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
                am__force_recheck=am--force-recheck \
                TEST_LOGS="$$log_list"; \
        exit $$?
+test-accept.log: test-accept$(EXEEXT)
+       @p='test-accept$(EXEEXT)'; \
+       b='test-accept'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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'; \
@@ -3055,6 +3741,13 @@ test-argmatch.log: test-argmatch$(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-arpa_inet.log: test-arpa_inet$(EXEEXT)
+       @p='test-arpa_inet$(EXEEXT)'; \
+       b='test-arpa_inet'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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'; \
@@ -3062,6 +3755,13 @@ test-binary-io.sh.log: test-binary-io.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-bind.log: test-bind$(EXEEXT)
+       @p='test-bind$(EXEEXT)'; \
+       b='test-bind'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-bitrotate.log: test-bitrotate$(EXEEXT)
        @p='test-bitrotate$(EXEEXT)'; \
        b='test-bitrotate'; \
@@ -3118,6 +3818,20 @@ test-close.log: test-close$(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-connect.log: test-connect$(EXEEXT)
+       @p='test-connect$(EXEEXT)'; \
+       b='test-connect'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-ctype.log: test-ctype$(EXEEXT)
+       @p='test-ctype$(EXEEXT)'; \
+       b='test-ctype'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-dirname.log: test-dirname$(EXEEXT)
        @p='test-dirname$(EXEEXT)'; \
        b='test-dirname'; \
@@ -3286,6 +4000,13 @@ test-fstat.log: test-fstat$(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-ftruncate.sh.log: test-ftruncate.sh
+       @p='test-ftruncate.sh'; \
+       b='test-ftruncate.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-fwrite.log: test-fwrite$(EXEEXT)
        @p='test-fwrite$(EXEEXT)'; \
        b='test-fwrite'; \
@@ -3349,6 +4070,13 @@ test-ignore-value.log: test-ignore-value$(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-inet_pton.log: test-inet_pton$(EXEEXT)
+       @p='test-inet_pton$(EXEEXT)'; \
+       b='test-inet_pton'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-intprops.log: test-intprops$(EXEEXT)
        @p='test-intprops$(EXEEXT)'; \
        b='test-intprops'; \
@@ -3370,6 +4098,20 @@ test-inttypes.log: test-inttypes$(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-ioctl.log: test-ioctl$(EXEEXT)
+       @p='test-ioctl$(EXEEXT)'; \
+       b='test-ioctl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-isblank.log: test-isblank$(EXEEXT)
+       @p='test-isblank$(EXEEXT)'; \
+       b='test-isblank'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-iswblank.log: test-iswblank$(EXEEXT)
        @p='test-iswblank$(EXEEXT)'; \
        b='test-iswblank'; \
@@ -3384,6 +4126,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-listen.log: test-listen$(EXEEXT)
+       @p='test-listen$(EXEEXT)'; \
+       b='test-listen'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-locale.log: test-locale$(EXEEXT)
        @p='test-locale$(EXEEXT)'; \
        b='test-locale'; \
@@ -3405,13 +4154,6 @@ test-lstat.log: test-lstat$(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-malloc-gnu.log: test-malloc-gnu$(EXEEXT)
-       @p='test-malloc-gnu$(EXEEXT)'; \
-       b='test-malloc-gnu'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-malloca.log: test-malloca$(EXEEXT)
        @p='test-malloca$(EXEEXT)'; \
        b='test-malloca'; \
@@ -3447,6 +4189,13 @@ test-mbrtowc4.sh.log: test-mbrtowc4.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-mbrtowc5.sh.log: test-mbrtowc5.sh
+       @p='test-mbrtowc5.sh'; \
+       b='test-mbrtowc5.sh'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-mbrtowc-w32-1.sh.log: test-mbrtowc-w32-1.sh
        @p='test-mbrtowc-w32-1.sh'; \
        b='test-mbrtowc-w32-1.sh'; \
@@ -3552,6 +4301,20 @@ test-memchr.log: test-memchr$(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-nanosleep.log: test-nanosleep$(EXEEXT)
+       @p='test-nanosleep$(EXEEXT)'; \
+       b='test-nanosleep'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-netinet_in.log: test-netinet_in$(EXEEXT)
+       @p='test-netinet_in$(EXEEXT)'; \
+       b='test-netinet_in'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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'; \
@@ -3573,6 +4336,27 @@ test-pathmax.log: test-pathmax$(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-perror.sh.log: test-perror.sh
+       @p='test-perror.sh'; \
+       b='test-perror.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-perror2.log: test-perror2$(EXEEXT)
+       @p='test-perror2$(EXEEXT)'; \
+       b='test-perror2'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-pipe.log: test-pipe$(EXEEXT)
+       @p='test-pipe$(EXEEXT)'; \
+       b='test-pipe'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-quotearg-simple.log: test-quotearg-simple$(EXEEXT)
        @p='test-quotearg-simple$(EXEEXT)'; \
        b='test-quotearg-simple'; \
@@ -3587,6 +4371,13 @@ test-raise.log: test-raise$(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-rawmemchr.log: test-rawmemchr$(EXEEXT)
+       @p='test-rawmemchr$(EXEEXT)'; \
+       b='test-rawmemchr'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-readlink.log: test-readlink$(EXEEXT)
        @p='test-readlink$(EXEEXT)'; \
        b='test-readlink'; \
@@ -3601,6 +4392,27 @@ test-regex.log: test-regex$(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-select.log: test-select$(EXEEXT)
+       @p='test-select$(EXEEXT)'; \
+       b='test-select'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-select-in.sh.log: test-select-in.sh
+       @p='test-select-in.sh'; \
+       b='test-select-in.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-select-out.sh.log: test-select-out.sh
+       @p='test-select-out.sh'; \
+       b='test-select-out.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-setenv.log: test-setenv$(EXEEXT)
        @p='test-setenv$(EXEEXT)'; \
        b='test-setenv'; \
@@ -3622,6 +4434,13 @@ test-setlocale2.sh.log: test-setlocale2.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-setsockopt.log: test-setsockopt$(EXEEXT)
+       @p='test-setsockopt$(EXEEXT)'; \
+       b='test-setsockopt'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-sh-quote.log: test-sh-quote$(EXEEXT)
        @p='test-sh-quote$(EXEEXT)'; \
        b='test-sh-quote'; \
@@ -3664,6 +4483,13 @@ test-snprintf.log: test-snprintf$(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-sockets.log: test-sockets$(EXEEXT)
+       @p='test-sockets$(EXEEXT)'; \
+       b='test-sockets'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-stat.log: test-stat$(EXEEXT)
        @p='test-stat$(EXEEXT)'; \
        b='test-stat'; \
@@ -3678,6 +4504,13 @@ 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'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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'; \
@@ -3720,6 +4553,13 @@ test-strerror.log: test-strerror$(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-strerror_r.log: test-strerror_r$(EXEEXT)
+       @p='test-strerror_r$(EXEEXT)'; \
+       b='test-strerror_r'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-strftime.log: test-strftime$(EXEEXT)
        @p='test-strftime$(EXEEXT)'; \
        b='test-strftime'; \
@@ -3776,6 +4616,27 @@ test-symlink.log: test-symlink$(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-sys_ioctl.log: test-sys_ioctl$(EXEEXT)
+       @p='test-sys_ioctl$(EXEEXT)'; \
+       b='test-sys_ioctl'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sys_select.log: test-sys_select$(EXEEXT)
+       @p='test-sys_select$(EXEEXT)'; \
+       b='test-sys_select'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
+test-sys_socket.log: test-sys_socket$(EXEEXT)
+       @p='test-sys_socket$(EXEEXT)'; \
+       b='test-sys_socket'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-sys_stat.log: test-sys_stat$(EXEEXT)
        @p='test-sys_stat$(EXEEXT)'; \
        b='test-sys_stat'; \
@@ -3797,6 +4658,13 @@ test-sys_types.log: test-sys_types$(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-sys_uio.log: test-sys_uio$(EXEEXT)
+       @p='test-sys_uio$(EXEEXT)'; \
+       b='test-sys_uio'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-sys_wait.log: test-sys_wait$(EXEEXT)
        @p='test-sys_wait$(EXEEXT)'; \
        b='test-sys_wait'; \
@@ -3818,6 +4686,13 @@ test-time.log: test-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-timespec.log: test-timespec$(EXEEXT)
+       @p='test-timespec$(EXEEXT)'; \
+       b='test-timespec'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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'; \
@@ -3867,13 +4742,6 @@ test-update-copyright.sh.log: test-update-copyright.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-usleep.log: test-usleep$(EXEEXT)
-       @p='test-usleep$(EXEEXT)'; \
-       b='test-usleep'; \
-       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
-       --log-file $$b.log --trs-file $$b.trs \
-       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
-       "$$tst" $(AM_TESTS_FD_REDIRECT)
 test-vasnprintf.log: test-vasnprintf$(EXEEXT)
        @p='test-vasnprintf$(EXEEXT)'; \
        b='test-vasnprintf'; \
@@ -4142,7 +5010,176 @@ clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
        mostlyclean-am
 
 distclean: distclean-recursive
-       -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) uniwidth/$(DEPDIR)
+               -rm -f ./$(DEPDIR)/accept.Po
+       -rm -f ./$(DEPDIR)/bind.Po
+       -rm -f ./$(DEPDIR)/connect.Po
+       -rm -f ./$(DEPDIR)/dtotimespec.Po
+       -rm -f ./$(DEPDIR)/fdopen.Po
+       -rm -f ./$(DEPDIR)/ftruncate.Po
+       -rm -f ./$(DEPDIR)/getcwd-lgpl.Po
+       -rm -f ./$(DEPDIR)/getpagesize.Po
+       -rm -f ./$(DEPDIR)/hash-pjw.Po
+       -rm -f ./$(DEPDIR)/inet_pton.Po
+       -rm -f ./$(DEPDIR)/ioctl.Po
+       -rm -f ./$(DEPDIR)/listen.Po
+       -rm -f ./$(DEPDIR)/nanosleep.Po
+       -rm -f ./$(DEPDIR)/perror.Po
+       -rm -f ./$(DEPDIR)/pipe.Po
+       -rm -f ./$(DEPDIR)/putenv.Po
+       -rm -f ./$(DEPDIR)/select.Po
+       -rm -f ./$(DEPDIR)/setlocale.Po
+       -rm -f ./$(DEPDIR)/setsockopt.Po
+       -rm -f ./$(DEPDIR)/sleep.Po
+       -rm -f ./$(DEPDIR)/snprintf.Po
+       -rm -f ./$(DEPDIR)/socket.Po
+       -rm -f ./$(DEPDIR)/sockets.Po
+       -rm -f ./$(DEPDIR)/strerror_r.Po
+       -rm -f ./$(DEPDIR)/symlink.Po
+       -rm -f ./$(DEPDIR)/sys_socket.Po
+       -rm -f ./$(DEPDIR)/test-accept.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-binary-io.Po
+       -rm -f ./$(DEPDIR)/test-bind.Po
+       -rm -f ./$(DEPDIR)/test-bitrotate.Po
+       -rm -f ./$(DEPDIR)/test-btowc.Po
+       -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-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/test-close.Po
+       -rm -f ./$(DEPDIR)/test-connect.Po
+       -rm -f ./$(DEPDIR)/test-ctype.Po
+       -rm -f ./$(DEPDIR)/test-dirname.Po
+       -rm -f ./$(DEPDIR)/test-dup2.Po
+       -rm -f ./$(DEPDIR)/test-environ.Po
+       -rm -f ./$(DEPDIR)/test-errno.Po
+       -rm -f ./$(DEPDIR)/test-exclude.Po
+       -rm -f ./$(DEPDIR)/test-fcntl-h.Po
+       -rm -f ./$(DEPDIR)/test-fcntl.Po
+       -rm -f ./$(DEPDIR)/test-fdopen.Po
+       -rm -f ./$(DEPDIR)/test-fgetc.Po
+       -rm -f ./$(DEPDIR)/test-filenamecat.Po
+       -rm -f ./$(DEPDIR)/test-float.Po
+       -rm -f ./$(DEPDIR)/test-fnmatch.Po
+       -rm -f ./$(DEPDIR)/test-fputc.Po
+       -rm -f ./$(DEPDIR)/test-fread.Po
+       -rm -f ./$(DEPDIR)/test-freopen-safer.Po
+       -rm -f ./$(DEPDIR)/test-freopen.Po
+       -rm -f ./$(DEPDIR)/test-fstat.Po
+       -rm -f ./$(DEPDIR)/test-ftruncate.Po
+       -rm -f ./$(DEPDIR)/test-fwrite.Po
+       -rm -f ./$(DEPDIR)/test-getcwd-lgpl.Po
+       -rm -f ./$(DEPDIR)/test-getdtablesize.Po
+       -rm -f ./$(DEPDIR)/test-getopt.Po
+       -rm -f ./$(DEPDIR)/test-gettimeofday.Po
+       -rm -f ./$(DEPDIR)/test-hash.Po
+       -rm -f ./$(DEPDIR)/test-iconv-h.Po
+       -rm -f ./$(DEPDIR)/test-iconv.Po
+       -rm -f ./$(DEPDIR)/test-ignore-value.Po
+       -rm -f ./$(DEPDIR)/test-inet_pton.Po
+       -rm -f ./$(DEPDIR)/test-intprops.Po
+       -rm -f ./$(DEPDIR)/test-inttostr.Po
+       -rm -f ./$(DEPDIR)/test-inttypes.Po
+       -rm -f ./$(DEPDIR)/test-ioctl.Po
+       -rm -f ./$(DEPDIR)/test-isblank.Po
+       -rm -f ./$(DEPDIR)/test-iswblank.Po
+       -rm -f ./$(DEPDIR)/test-langinfo.Po
+       -rm -f ./$(DEPDIR)/test-listen.Po
+       -rm -f ./$(DEPDIR)/test-locale.Po
+       -rm -f ./$(DEPDIR)/test-localeconv.Po
+       -rm -f ./$(DEPDIR)/test-lstat.Po
+       -rm -f ./$(DEPDIR)/test-malloca.Po
+       -rm -f ./$(DEPDIR)/test-mbrtowc-w32.Po
+       -rm -f ./$(DEPDIR)/test-mbrtowc.Po
+       -rm -f ./$(DEPDIR)/test-mbscasecmp.Po
+       -rm -f ./$(DEPDIR)/test-mbsinit.Po
+       -rm -f ./$(DEPDIR)/test-mbsrtowcs.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr1.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr2.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr3.Po
+       -rm -f ./$(DEPDIR)/test-memchr.Po
+       -rm -f ./$(DEPDIR)/test-nanosleep.Po
+       -rm -f ./$(DEPDIR)/test-netinet_in.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo.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-quotearg-simple.Po
+       -rm -f ./$(DEPDIR)/test-raise.Po
+       -rm -f ./$(DEPDIR)/test-rawmemchr.Po
+       -rm -f ./$(DEPDIR)/test-readlink.Po
+       -rm -f ./$(DEPDIR)/test-regex.Po
+       -rm -f ./$(DEPDIR)/test-select-fd.Po
+       -rm -f ./$(DEPDIR)/test-select-stdin.Po
+       -rm -f ./$(DEPDIR)/test-select.Po
+       -rm -f ./$(DEPDIR)/test-setenv.Po
+       -rm -f ./$(DEPDIR)/test-setlocale1.Po
+       -rm -f ./$(DEPDIR)/test-setlocale2.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-sleep.Po
+       -rm -f ./$(DEPDIR)/test-snprintf.Po
+       -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-stddef.Po
+       -rm -f ./$(DEPDIR)/test-stdint.Po
+       -rm -f ./$(DEPDIR)/test-stdio.Po
+       -rm -f ./$(DEPDIR)/test-stdlib.Po
+       -rm -f ./$(DEPDIR)/test-strerror.Po
+       -rm -f ./$(DEPDIR)/test-strerror_r.Po
+       -rm -f ./$(DEPDIR)/test-strftime.Po
+       -rm -f ./$(DEPDIR)/test-striconv.Po
+       -rm -f ./$(DEPDIR)/test-string.Po
+       -rm -f ./$(DEPDIR)/test-strings.Po
+       -rm -f ./$(DEPDIR)/test-strnlen.Po
+       -rm -f ./$(DEPDIR)/test-strtoull.Po
+       -rm -f ./$(DEPDIR)/test-strtoumax.Po
+       -rm -f ./$(DEPDIR)/test-symlink.Po
+       -rm -f ./$(DEPDIR)/test-sys_ioctl.Po
+       -rm -f ./$(DEPDIR)/test-sys_select.Po
+       -rm -f ./$(DEPDIR)/test-sys_socket.Po
+       -rm -f ./$(DEPDIR)/test-sys_stat.Po
+       -rm -f ./$(DEPDIR)/test-sys_time.Po
+       -rm -f ./$(DEPDIR)/test-sys_types.Po
+       -rm -f ./$(DEPDIR)/test-sys_uio.Po
+       -rm -f ./$(DEPDIR)/test-sys_wait.Po
+       -rm -f ./$(DEPDIR)/test-time.Po
+       -rm -f ./$(DEPDIR)/test-timespec.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.Po
+       -rm -f ./$(DEPDIR)/test-version-etc.Po
+       -rm -f ./$(DEPDIR)/test-wchar.Po
+       -rm -f ./$(DEPDIR)/test-wcrtomb-w32.Po
+       -rm -f ./$(DEPDIR)/test-wcrtomb.Po
+       -rm -f ./$(DEPDIR)/test-wctype-h.Po
+       -rm -f ./$(DEPDIR)/test-wcwidth.Po
+       -rm -f ./$(DEPDIR)/test-xalloc-die.Po
+       -rm -f ./$(DEPDIR)/test-xstrtol.Po
+       -rm -f ./$(DEPDIR)/test-xstrtoul.Po
+       -rm -f ./$(DEPDIR)/test-xstrtoumax.Po
+       -rm -f ./$(DEPDIR)/test-xvasprintf.Po
+       -rm -f ./$(DEPDIR)/timespec-add.Po
+       -rm -f ./$(DEPDIR)/timespec-sub.Po
+       -rm -f ./$(DEPDIR)/wctob.Po
+       -rm -f ./$(DEPDIR)/wctomb.Po
+       -rm -f unistr/$(DEPDIR)/test-u8-mbtoucr.Po
+       -rm -f unistr/$(DEPDIR)/test-u8-uctomb.Po
+       -rm -f uniwidth/$(DEPDIR)/test-uc_width.Po
+       -rm -f uniwidth/$(DEPDIR)/test-uc_width2.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -4188,7 +5225,176 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
-       -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) uniwidth/$(DEPDIR)
+               -rm -f ./$(DEPDIR)/accept.Po
+       -rm -f ./$(DEPDIR)/bind.Po
+       -rm -f ./$(DEPDIR)/connect.Po
+       -rm -f ./$(DEPDIR)/dtotimespec.Po
+       -rm -f ./$(DEPDIR)/fdopen.Po
+       -rm -f ./$(DEPDIR)/ftruncate.Po
+       -rm -f ./$(DEPDIR)/getcwd-lgpl.Po
+       -rm -f ./$(DEPDIR)/getpagesize.Po
+       -rm -f ./$(DEPDIR)/hash-pjw.Po
+       -rm -f ./$(DEPDIR)/inet_pton.Po
+       -rm -f ./$(DEPDIR)/ioctl.Po
+       -rm -f ./$(DEPDIR)/listen.Po
+       -rm -f ./$(DEPDIR)/nanosleep.Po
+       -rm -f ./$(DEPDIR)/perror.Po
+       -rm -f ./$(DEPDIR)/pipe.Po
+       -rm -f ./$(DEPDIR)/putenv.Po
+       -rm -f ./$(DEPDIR)/select.Po
+       -rm -f ./$(DEPDIR)/setlocale.Po
+       -rm -f ./$(DEPDIR)/setsockopt.Po
+       -rm -f ./$(DEPDIR)/sleep.Po
+       -rm -f ./$(DEPDIR)/snprintf.Po
+       -rm -f ./$(DEPDIR)/socket.Po
+       -rm -f ./$(DEPDIR)/sockets.Po
+       -rm -f ./$(DEPDIR)/strerror_r.Po
+       -rm -f ./$(DEPDIR)/symlink.Po
+       -rm -f ./$(DEPDIR)/sys_socket.Po
+       -rm -f ./$(DEPDIR)/test-accept.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-binary-io.Po
+       -rm -f ./$(DEPDIR)/test-bind.Po
+       -rm -f ./$(DEPDIR)/test-bitrotate.Po
+       -rm -f ./$(DEPDIR)/test-btowc.Po
+       -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-strncasecmp.Po
+       -rm -f ./$(DEPDIR)/test-close.Po
+       -rm -f ./$(DEPDIR)/test-connect.Po
+       -rm -f ./$(DEPDIR)/test-ctype.Po
+       -rm -f ./$(DEPDIR)/test-dirname.Po
+       -rm -f ./$(DEPDIR)/test-dup2.Po
+       -rm -f ./$(DEPDIR)/test-environ.Po
+       -rm -f ./$(DEPDIR)/test-errno.Po
+       -rm -f ./$(DEPDIR)/test-exclude.Po
+       -rm -f ./$(DEPDIR)/test-fcntl-h.Po
+       -rm -f ./$(DEPDIR)/test-fcntl.Po
+       -rm -f ./$(DEPDIR)/test-fdopen.Po
+       -rm -f ./$(DEPDIR)/test-fgetc.Po
+       -rm -f ./$(DEPDIR)/test-filenamecat.Po
+       -rm -f ./$(DEPDIR)/test-float.Po
+       -rm -f ./$(DEPDIR)/test-fnmatch.Po
+       -rm -f ./$(DEPDIR)/test-fputc.Po
+       -rm -f ./$(DEPDIR)/test-fread.Po
+       -rm -f ./$(DEPDIR)/test-freopen-safer.Po
+       -rm -f ./$(DEPDIR)/test-freopen.Po
+       -rm -f ./$(DEPDIR)/test-fstat.Po
+       -rm -f ./$(DEPDIR)/test-ftruncate.Po
+       -rm -f ./$(DEPDIR)/test-fwrite.Po
+       -rm -f ./$(DEPDIR)/test-getcwd-lgpl.Po
+       -rm -f ./$(DEPDIR)/test-getdtablesize.Po
+       -rm -f ./$(DEPDIR)/test-getopt.Po
+       -rm -f ./$(DEPDIR)/test-gettimeofday.Po
+       -rm -f ./$(DEPDIR)/test-hash.Po
+       -rm -f ./$(DEPDIR)/test-iconv-h.Po
+       -rm -f ./$(DEPDIR)/test-iconv.Po
+       -rm -f ./$(DEPDIR)/test-ignore-value.Po
+       -rm -f ./$(DEPDIR)/test-inet_pton.Po
+       -rm -f ./$(DEPDIR)/test-intprops.Po
+       -rm -f ./$(DEPDIR)/test-inttostr.Po
+       -rm -f ./$(DEPDIR)/test-inttypes.Po
+       -rm -f ./$(DEPDIR)/test-ioctl.Po
+       -rm -f ./$(DEPDIR)/test-isblank.Po
+       -rm -f ./$(DEPDIR)/test-iswblank.Po
+       -rm -f ./$(DEPDIR)/test-langinfo.Po
+       -rm -f ./$(DEPDIR)/test-listen.Po
+       -rm -f ./$(DEPDIR)/test-locale.Po
+       -rm -f ./$(DEPDIR)/test-localeconv.Po
+       -rm -f ./$(DEPDIR)/test-lstat.Po
+       -rm -f ./$(DEPDIR)/test-malloca.Po
+       -rm -f ./$(DEPDIR)/test-mbrtowc-w32.Po
+       -rm -f ./$(DEPDIR)/test-mbrtowc.Po
+       -rm -f ./$(DEPDIR)/test-mbscasecmp.Po
+       -rm -f ./$(DEPDIR)/test-mbsinit.Po
+       -rm -f ./$(DEPDIR)/test-mbsrtowcs.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr1.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr2.Po
+       -rm -f ./$(DEPDIR)/test-mbsstr3.Po
+       -rm -f ./$(DEPDIR)/test-memchr.Po
+       -rm -f ./$(DEPDIR)/test-nanosleep.Po
+       -rm -f ./$(DEPDIR)/test-netinet_in.Po
+       -rm -f ./$(DEPDIR)/test-nl_langinfo.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-quotearg-simple.Po
+       -rm -f ./$(DEPDIR)/test-raise.Po
+       -rm -f ./$(DEPDIR)/test-rawmemchr.Po
+       -rm -f ./$(DEPDIR)/test-readlink.Po
+       -rm -f ./$(DEPDIR)/test-regex.Po
+       -rm -f ./$(DEPDIR)/test-select-fd.Po
+       -rm -f ./$(DEPDIR)/test-select-stdin.Po
+       -rm -f ./$(DEPDIR)/test-select.Po
+       -rm -f ./$(DEPDIR)/test-setenv.Po
+       -rm -f ./$(DEPDIR)/test-setlocale1.Po
+       -rm -f ./$(DEPDIR)/test-setlocale2.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-sleep.Po
+       -rm -f ./$(DEPDIR)/test-snprintf.Po
+       -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-stddef.Po
+       -rm -f ./$(DEPDIR)/test-stdint.Po
+       -rm -f ./$(DEPDIR)/test-stdio.Po
+       -rm -f ./$(DEPDIR)/test-stdlib.Po
+       -rm -f ./$(DEPDIR)/test-strerror.Po
+       -rm -f ./$(DEPDIR)/test-strerror_r.Po
+       -rm -f ./$(DEPDIR)/test-strftime.Po
+       -rm -f ./$(DEPDIR)/test-striconv.Po
+       -rm -f ./$(DEPDIR)/test-string.Po
+       -rm -f ./$(DEPDIR)/test-strings.Po
+       -rm -f ./$(DEPDIR)/test-strnlen.Po
+       -rm -f ./$(DEPDIR)/test-strtoull.Po
+       -rm -f ./$(DEPDIR)/test-strtoumax.Po
+       -rm -f ./$(DEPDIR)/test-symlink.Po
+       -rm -f ./$(DEPDIR)/test-sys_ioctl.Po
+       -rm -f ./$(DEPDIR)/test-sys_select.Po
+       -rm -f ./$(DEPDIR)/test-sys_socket.Po
+       -rm -f ./$(DEPDIR)/test-sys_stat.Po
+       -rm -f ./$(DEPDIR)/test-sys_time.Po
+       -rm -f ./$(DEPDIR)/test-sys_types.Po
+       -rm -f ./$(DEPDIR)/test-sys_uio.Po
+       -rm -f ./$(DEPDIR)/test-sys_wait.Po
+       -rm -f ./$(DEPDIR)/test-time.Po
+       -rm -f ./$(DEPDIR)/test-timespec.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.Po
+       -rm -f ./$(DEPDIR)/test-version-etc.Po
+       -rm -f ./$(DEPDIR)/test-wchar.Po
+       -rm -f ./$(DEPDIR)/test-wcrtomb-w32.Po
+       -rm -f ./$(DEPDIR)/test-wcrtomb.Po
+       -rm -f ./$(DEPDIR)/test-wctype-h.Po
+       -rm -f ./$(DEPDIR)/test-wcwidth.Po
+       -rm -f ./$(DEPDIR)/test-xalloc-die.Po
+       -rm -f ./$(DEPDIR)/test-xstrtol.Po
+       -rm -f ./$(DEPDIR)/test-xstrtoul.Po
+       -rm -f ./$(DEPDIR)/test-xstrtoumax.Po
+       -rm -f ./$(DEPDIR)/test-xvasprintf.Po
+       -rm -f ./$(DEPDIR)/timespec-add.Po
+       -rm -f ./$(DEPDIR)/timespec-sub.Po
+       -rm -f ./$(DEPDIR)/wctob.Po
+       -rm -f ./$(DEPDIR)/wctomb.Po
+       -rm -f unistr/$(DEPDIR)/test-u8-mbtoucr.Po
+       -rm -f unistr/$(DEPDIR)/test-u8-uctomb.Po
+       -rm -f uniwidth/$(DEPDIR)/test-uc_width.Po
+       -rm -f uniwidth/$(DEPDIR)/test-uc_width2.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -4210,22 +5416,68 @@ uninstall-am:
 .MAKE: $(am__recursive_targets) all check check-am install install-am \
        install-strip
 
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-       check-TESTS check-am clean clean-checkLIBRARIES \
-       clean-checkPROGRAMS clean-generic clean-local \
-       clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \
-       ctags-am distclean distclean-compile distclean-generic \
-       distclean-tags distdir dvi dvi-am html html-am info info-am \
-       install install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-ps install-ps-am \
-       install-strip installcheck installcheck-am installdirs \
-       installdirs-am maintainer-clean maintainer-clean-generic \
-       mostlyclean mostlyclean-compile mostlyclean-generic \
-       mostlyclean-local pdf pdf-am ps ps-am recheck tags tags-am \
-       uninstall uninstall-am
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--depfiles check check-TESTS check-am clean \
+       clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
+       clean-local clean-noinstLIBRARIES clean-noinstPROGRAMS \
+       cscopelist-am ctags ctags-am distclean distclean-compile \
+       distclean-generic distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-local pdf pdf-am ps ps-am \
+       recheck tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
 
+
+# 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' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
+             -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
+             -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
+             -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \
+             -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \
+             -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
+             -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
+             -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \
+             -e 's|@''REPLACE_INET_PTON''@|$(REPLACE_INET_PTON)|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)/arpa_inet.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+
+# 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@              -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_FALSE@netinet/in.h: $(top_builddir)/config.status
+@GL_GENERATE_NETINET_IN_H_FALSE@       rm -f $@
 # The arg-nonnull.h that gets inserted into generated .h files is the same as
 # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
 # off.
@@ -4262,6 +5514,120 @@ warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
          > $@-t && \
        mv $@-t $@
 
+# 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 <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' \
+             -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' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \
+             -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \
+             -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \
+             -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
+             -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 $@
+
+# 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' \
+             -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_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
+             -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
+             -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \
+             -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+             -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \
+             -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \
+             -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 $@
+
+# 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' \
+             -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_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
+             -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \
+             -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \
+             -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \
+             -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \
+             -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \
+             -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \
+             -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \
+             -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \
+             -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \
+             -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \
+             -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \
+             -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \
+             -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \
+             -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \
+             -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+             -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
+             -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
+             -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \
+             -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
+             -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|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)/sys_socket.in.h; \
+       } > $@-t && \
+       mv -f $@-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' \
+             -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 $@
+
 # Clean up after Solaris cc.
 clean-local:
        rm -rf SunWS_cache
diff --git a/gnulib-tests/accept.c b/gnulib-tests/accept.c
new file mode 100644 (file)
index 0000000..bd0605e
--- /dev/null
@@ -0,0 +1,52 @@
+/* accept.c --- wrappers for Windows accept function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#undef accept
+
+int
+rpl_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
+{
+  SOCKET sock = FD_TO_SOCKET (fd);
+
+  if (sock == INVALID_SOCKET)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  else
+    {
+      SOCKET fh = accept (sock, addr, addrlen);
+      if (fh == INVALID_SOCKET)
+        {
+          set_winsock_errno ();
+          return -1;
+        }
+      else
+        return SOCKET_TO_FD (fh);
+    }
+}
diff --git a/gnulib-tests/arpa_inet.in.h b/gnulib-tests/arpa_inet.in.h
new file mode 100644 (file)
index 0000000..026c4dc
--- /dev/null
@@ -0,0 +1,140 @@
+/* A GNU-like <arpa/inet.h>.
+
+   Copyright (C) 2005-2006, 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _@GUARD_PREFIX@_ARPA_INET_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__ */
+#endif
+
+/* Gnulib's sys/socket.h is responsible for defining socklen_t (used below) and
+   for pulling in winsock2.h etc. under MinGW.
+   But avoid namespace pollution on glibc systems.  */
+#ifndef __GLIBC__
+# include <sys/socket.h>
+#endif
+
+/* On NonStop Kernel, inet_ntop and inet_pton are declared in <netdb.h>.
+   But avoid namespace pollution on glibc systems.  */
+#if defined __TANDEM && !defined __GLIBC__
+# include <netdb.h>
+#endif
+
+#if @HAVE_ARPA_INET_H@
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_ARPA_INET_H@
+
+#endif
+
+#ifndef _@GUARD_PREFIX@_ARPA_INET_H
+#define _@GUARD_PREFIX@_ARPA_INET_H
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+
+#if @GNULIB_INET_NTOP@
+/* Converts an internet address from internal format to a printable,
+   presentable format.
+   AF is an internet address family, such as AF_INET or AF_INET6.
+   SRC points to a 'struct in_addr' (for AF_INET) or 'struct in6_addr'
+   (for AF_INET6).
+   DST points to a buffer having room for CNT bytes.
+   The printable representation of the address (in numeric form, not
+   surrounded by [...], no reverse DNS is done) is placed in DST, and
+   DST is returned.  If an error occurs, the return value is NULL and
+   errno is set.  If CNT bytes are not sufficient to hold the result,
+   the return value is NULL and errno is set to ENOSPC.  A good value
+   for CNT is 46.
+
+   For more details, see the POSIX:2001 specification
+   <http://www.opengroup.org/susv3xsh/inet_ntop.html>.  */
+# if @REPLACE_INET_NTOP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef inet_ntop
+#   define inet_ntop rpl_inet_ntop
+#  endif
+_GL_FUNCDECL_RPL (inet_ntop, const char *,
+                  (int af, const void *restrict src,
+                   char *restrict dst, socklen_t cnt)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (inet_ntop, const char *,
+                  (int af, const void *restrict src,
+                   char *restrict dst, socklen_t cnt));
+# else
+#  if !@HAVE_DECL_INET_NTOP@
+_GL_FUNCDECL_SYS (inet_ntop, const char *,
+                  (int af, const void *restrict src,
+                   char *restrict dst, socklen_t cnt)
+                  _GL_ARG_NONNULL ((2, 3)));
+#  endif
+/* Need to cast, because on NonStop Kernel, the fourth parameter is
+                                            size_t cnt.  */
+_GL_CXXALIAS_SYS_CAST (inet_ntop, const char *,
+                       (int af, const void *restrict src,
+                        char *restrict dst, socklen_t cnt));
+# endif
+_GL_CXXALIASWARN (inet_ntop);
+#elif defined GNULIB_POSIXCHECK
+# undef inet_ntop
+# if HAVE_RAW_DECL_INET_NTOP
+_GL_WARN_ON_USE (inet_ntop, "inet_ntop is unportable - "
+                 "use gnulib module inet_ntop for portability");
+# endif
+#endif
+
+#if @GNULIB_INET_PTON@
+# if @REPLACE_INET_PTON@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef inet_pton
+#   define inet_pton rpl_inet_pton
+#  endif
+_GL_FUNCDECL_RPL (inet_pton, int,
+                  (int af, const char *restrict src, void *restrict dst)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (inet_pton, int,
+                  (int af, const char *restrict src, void *restrict dst));
+# else
+#  if !@HAVE_DECL_INET_PTON@
+_GL_FUNCDECL_SYS (inet_pton, int,
+                  (int af, const char *restrict src, void *restrict dst)
+                  _GL_ARG_NONNULL ((2, 3)));
+#  endif
+_GL_CXXALIAS_SYS (inet_pton, int,
+                  (int af, const char *restrict src, void *restrict dst));
+# endif
+_GL_CXXALIASWARN (inet_pton);
+#elif defined GNULIB_POSIXCHECK
+# undef inet_pton
+# if HAVE_RAW_DECL_INET_PTON
+_GL_WARN_ON_USE (inet_pton, "inet_pton is unportable - "
+                 "use gnulib module inet_pton for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_ARPA_INET_H */
+#endif /* _@GUARD_PREFIX@_ARPA_INET_H */
diff --git a/gnulib-tests/bind.c b/gnulib-tests/bind.c
new file mode 100644 (file)
index 0000000..7f526e2
--- /dev/null
@@ -0,0 +1,49 @@
+/* bind.c --- wrappers for Windows bind function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#undef bind
+
+int
+rpl_bind (int fd, const struct sockaddr *sockaddr, socklen_t len)
+{
+  SOCKET sock = FD_TO_SOCKET (fd);
+
+  if (sock == INVALID_SOCKET)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  else
+    {
+      int r = bind (sock, sockaddr, len);
+      if (r < 0)
+        set_winsock_errno ();
+
+      return r;
+    }
+}
diff --git a/gnulib-tests/connect.c b/gnulib-tests/connect.c
new file mode 100644 (file)
index 0000000..1d42317
--- /dev/null
@@ -0,0 +1,56 @@
+/* connect.c --- wrappers for Windows connect function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#undef connect
+
+int
+rpl_connect (int fd, const struct sockaddr *sockaddr, socklen_t len)
+{
+  SOCKET sock = FD_TO_SOCKET (fd);
+
+  if (sock == INVALID_SOCKET)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  else
+    {
+      int r = connect (sock, sockaddr, len);
+      if (r < 0)
+        {
+          /* EINPROGRESS is not returned by WinSock 2.0; for backwards
+             compatibility, connect(2) uses EWOULDBLOCK.  */
+          if (WSAGetLastError () == WSAEWOULDBLOCK)
+            WSASetLastError (WSAEINPROGRESS);
+
+          set_winsock_errno ();
+        }
+
+      return r;
+    }
+}
diff --git a/gnulib-tests/dtotimespec.c b/gnulib-tests/dtotimespec.c
new file mode 100644 (file)
index 0000000..9028044
--- /dev/null
@@ -0,0 +1,59 @@
+/* Convert double to timespec.
+
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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 */
+
+/* Convert the double value SEC to a struct timespec.  Round toward
+   positive infinity.  On overflow, return an extremal value.  */
+
+#include <config.h>
+
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+dtotimespec (double sec)
+{
+  double min_representable = TYPE_MINIMUM (time_t);
+  double max_representable =
+    ((TYPE_MAXIMUM (time_t) * (double) TIMESPEC_RESOLUTION
+      + (TIMESPEC_RESOLUTION - 1))
+     / TIMESPEC_RESOLUTION);
+
+  if (! (min_representable < sec))
+    return make_timespec (TYPE_MINIMUM (time_t), 0);
+  else if (! (sec < max_representable))
+    return make_timespec (TYPE_MAXIMUM (time_t), TIMESPEC_RESOLUTION - 1);
+  else
+    {
+      time_t s = sec;
+      double frac = TIMESPEC_RESOLUTION * (sec - s);
+      long ns = frac;
+      ns += ns < frac;
+      s += ns / TIMESPEC_RESOLUTION;
+      ns %= TIMESPEC_RESOLUTION;
+
+      if (ns < 0)
+        {
+          s--;
+          ns += TIMESPEC_RESOLUTION;
+        }
+
+      return make_timespec (s, ns);
+    }
+}
index c717f71..61fbfdf 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a stream with a given file descriptor.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 0b7f528..05ee0ca 100644 (file)
@@ -1,5 +1,5 @@
-/* Manipulating the FPU control word.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+/* Manipulating the FPU control word.  -*- coding: utf-8 -*-
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/ftruncate.c b/gnulib-tests/ftruncate.c
new file mode 100644 (file)
index 0000000..1b39c87
--- /dev/null
@@ -0,0 +1,188 @@
+/* ftruncate emulations for native Windows.
+   Copyright (C) 1992-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#if HAVE_CHSIZE
+/* A native Windows platform.  */
+
+# include <errno.h>
+
+# if _GL_WINDOWS_64_BIT_OFF_T
+
+/* Large File Support: off_t is 64-bit, but chsize() takes only a 32-bit
+   argument.  So, define a 64-bit safe SetFileSize function ourselves.  */
+
+/* Ensure that <windows.h> declares GetFileSizeEx.  */
+#  undef _WIN32_WINNT
+#  define _WIN32_WINNT 0x500
+
+/* Get declarations of the native Windows API functions.  */
+#  define WIN32_LEAN_AND_MEAN
+#  include <windows.h>
+
+/* Get _get_osfhandle.  */
+#  include "msvc-nothrow.h"
+
+static BOOL
+SetFileSize (HANDLE h, LONGLONG size)
+{
+  LARGE_INTEGER old_size;
+
+  if (!GetFileSizeEx (h, &old_size))
+    return FALSE;
+
+  if (size != old_size.QuadPart)
+    {
+      /* Duplicate the handle, so we are free to modify its file position.  */
+      HANDLE curr_process = GetCurrentProcess ();
+      HANDLE tmph;
+
+      if (!DuplicateHandle (curr_process,           /* SourceProcessHandle */
+                            h,                      /* SourceHandle */
+                            curr_process,           /* TargetProcessHandle */
+                            (PHANDLE) &tmph,        /* TargetHandle */
+                            (DWORD) 0,              /* DesiredAccess */
+                            FALSE,                  /* InheritHandle */
+                            DUPLICATE_SAME_ACCESS)) /* Options */
+        return FALSE;
+
+      if (size < old_size.QuadPart)
+        {
+          /* Reduce the size.  */
+          LONG size_hi = (LONG) (size >> 32);
+          if (SetFilePointer (tmph, (LONG) size, &size_hi, FILE_BEGIN)
+              == INVALID_SET_FILE_POINTER
+              && GetLastError() != NO_ERROR)
+            {
+              CloseHandle (tmph);
+              return FALSE;
+            }
+          if (!SetEndOfFile (tmph))
+            {
+              CloseHandle (tmph);
+              return FALSE;
+            }
+        }
+      else
+        {
+          /* Increase the size by adding zero bytes at the end.  */
+          static char zero_bytes[1024];
+          LONG pos_hi = 0;
+          LONG pos_lo = SetFilePointer (tmph, (LONG) 0, &pos_hi, FILE_END);
+          LONGLONG pos;
+          if (pos_lo == INVALID_SET_FILE_POINTER
+              && GetLastError() != NO_ERROR)
+            {
+              CloseHandle (tmph);
+              return FALSE;
+            }
+          pos = ((LONGLONG) pos_hi << 32) | (ULONGLONG) (ULONG) pos_lo;
+          while (pos < size)
+            {
+              DWORD written;
+              LONGLONG count = size - pos;
+              if (count > sizeof (zero_bytes))
+                count = sizeof (zero_bytes);
+              if (!WriteFile (tmph, zero_bytes, (DWORD) count, &written, NULL)
+                  || written == 0)
+                {
+                  CloseHandle (tmph);
+                  return FALSE;
+                }
+              pos += (ULONGLONG) (ULONG) written;
+            }
+        }
+      /* Close the handle.  */
+      CloseHandle (tmph);
+    }
+  return TRUE;
+}
+
+int
+ftruncate (int fd, off_t length)
+{
+  HANDLE handle = (HANDLE) _get_osfhandle (fd);
+
+  if (handle == INVALID_HANDLE_VALUE)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  if (length < 0)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  if (!SetFileSize (handle, length))
+    {
+      switch (GetLastError ())
+        {
+        case ERROR_ACCESS_DENIED:
+          errno = EACCES;
+          break;
+        case ERROR_HANDLE_DISK_FULL:
+        case ERROR_DISK_FULL:
+        case ERROR_DISK_TOO_FRAGMENTED:
+          errno = ENOSPC;
+          break;
+        default:
+          errno = EIO;
+          break;
+        }
+      return -1;
+    }
+  return 0;
+}
+
+# else
+
+#  include <io.h>
+
+#  if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+#   include "msvc-inval.h"
+static int
+chsize_nothrow (int fd, long length)
+{
+  int result;
+
+  TRY_MSVC_INVAL
+    {
+      result = chsize (fd, length);
+    }
+  CATCH_MSVC_INVAL
+    {
+      result = -1;
+      errno = EBADF;
+    }
+  DONE_MSVC_INVAL;
+
+  return result;
+}
+#   define chsize chsize_nothrow
+#  endif
+
+int
+ftruncate (int fd, off_t length)
+{
+  return chsize (fd, length);
+}
+
+# endif
+#endif
index d550f35..c553f7b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.
    This file is part of gnulib.
 
    This program is free software: you can redistribute it and/or modify
@@ -20,6 +20,7 @@
 #include <unistd.h>
 
 #include <errno.h>
+#include <stdlib.h>
 #include <string.h>
 
 #if GNULIB_GETCWD
index 274c591..dc4a200 100644 (file)
@@ -1,6 +1,6 @@
 /* getpagesize emulation for systems where it cannot be done in a C macro.
 
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 55aa168..76bf8d1 100644 (file)
@@ -1,6 +1,6 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 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
@@ -22,7 +22,7 @@
 #
 # Generated by gnulib-tool.
 
-AUTOMAKE_OPTIONS = 1.5 foreign subdir-objects
+AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects
 
 SUBDIRS = .
 TESTS =
@@ -58,6 +58,24 @@ AM_LIBTOOLFLAGS = --preserve-dup-deps
 
 TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)'
 
+## begin gnulib module accept
+
+
+EXTRA_DIST += accept.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += accept.c
+
+## end   gnulib module accept
+
+## begin gnulib module accept-tests
+
+TESTS += test-accept
+check_PROGRAMS += test-accept
+test_accept_LDADD = $(LDADD) @LIBSOCKET@
+EXTRA_DIST += test-accept.c signature.h macros.h
+
+## end   gnulib module accept-tests
+
 ## begin gnulib module alloca-opt-tests
 
 TESTS += test-alloca-opt
@@ -75,14 +93,6 @@ EXTRA_DIST += test-areadlink.h test-areadlink.c macros.h
 
 ## end   gnulib module areadlink-tests
 
-## begin gnulib module argmatch
-
-libtests_a_SOURCES += argmatch.c
-
-EXTRA_DIST += argmatch.h
-
-## end   gnulib module argmatch
-
 ## begin gnulib module argmatch-tests
 
 TESTS += test-argmatch
@@ -93,6 +103,50 @@ EXTRA_DIST += test-argmatch.c macros.h
 
 ## end   gnulib module argmatch-tests
 
+## begin gnulib module arpa_inet
+
+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' \
+             -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+             -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \
+             -e 's|@''NEXT_ARPA_INET_H''@|$(NEXT_ARPA_INET_H)|g' \
+             -e 's|@''HAVE_ARPA_INET_H''@|$(HAVE_ARPA_INET_H)|g' \
+             -e 's/@''GNULIB_INET_NTOP''@/$(GNULIB_INET_NTOP)/g' \
+             -e 's/@''GNULIB_INET_PTON''@/$(GNULIB_INET_PTON)/g' \
+             -e 's|@''HAVE_DECL_INET_NTOP''@|$(HAVE_DECL_INET_NTOP)|g' \
+             -e 's|@''HAVE_DECL_INET_PTON''@|$(HAVE_DECL_INET_PTON)|g' \
+             -e 's|@''REPLACE_INET_NTOP''@|$(REPLACE_INET_NTOP)|g' \
+             -e 's|@''REPLACE_INET_PTON''@|$(REPLACE_INET_PTON)|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)/arpa_inet.in.h; \
+       } > $@-t && \
+       mv $@-t $@
+MOSTLYCLEANFILES += arpa/inet.h arpa/inet.h-t
+MOSTLYCLEANDIRS += arpa
+
+EXTRA_DIST += arpa_inet.in.h
+
+## end   gnulib module arpa_inet
+
+## begin gnulib module arpa_inet-tests
+
+TESTS += test-arpa_inet
+check_PROGRAMS += test-arpa_inet
+EXTRA_DIST += test-arpa_inet.c
+
+## end   gnulib module arpa_inet-tests
+
 ## begin gnulib module binary-io-tests
 
 TESTS += test-binary-io.sh
@@ -102,6 +156,24 @@ EXTRA_DIST += test-binary-io.sh test-binary-io.c macros.h
 
 ## end   gnulib module binary-io-tests
 
+## begin gnulib module bind
+
+
+EXTRA_DIST += bind.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += bind.c
+
+## end   gnulib module bind
+
+## begin gnulib module bind-tests
+
+TESTS += test-bind
+check_PROGRAMS += test-bind
+test_bind_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
+EXTRA_DIST += test-bind.c signature.h macros.h
+
+## end   gnulib module bind-tests
+
 ## begin gnulib module bitrotate-tests
 
 TESTS += test-bitrotate
@@ -124,7 +196,6 @@ EXTRA_DIST += test-btowc1.sh test-btowc2.sh test-btowc.c signature.h macros.h
 
 TESTS += test-c-ctype
 check_PROGRAMS += test-c-ctype
-
 EXTRA_DIST += test-c-ctype.c macros.h
 
 ## end   gnulib module c-ctype-tests
@@ -157,6 +228,32 @@ EXTRA_DIST += test-close.c signature.h macros.h
 
 ## end   gnulib module close-tests
 
+## begin gnulib module connect
+
+
+EXTRA_DIST += connect.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += connect.c
+
+## end   gnulib module connect
+
+## begin gnulib module connect-tests
+
+TESTS += test-connect
+check_PROGRAMS += test-connect
+test_connect_LDADD = $(LDADD) @LIBSOCKET@ $(INET_PTON_LIB)
+EXTRA_DIST += test-connect.c signature.h macros.h
+
+## end   gnulib module connect-tests
+
+## begin gnulib module ctype-tests
+
+TESTS += test-ctype
+check_PROGRAMS += test-ctype
+EXTRA_DIST += test-ctype.c
+
+## end   gnulib module ctype-tests
+
 ## begin gnulib module dirname-tests
 
 TESTS += test-dirname
@@ -166,6 +263,12 @@ EXTRA_DIST += test-dirname.c
 
 ## end   gnulib module dirname-tests
 
+## begin gnulib module dtotimespec
+
+libtests_a_SOURCES += dtotimespec.c
+
+## end   gnulib module dtotimespec
+
 ## begin gnulib module dup2-tests
 
 TESTS += test-dup2
@@ -205,7 +308,7 @@ TESTS += \
  test-exclude8.sh
 
 check_PROGRAMS += test-exclude
-test_exclude_LDADD = $(LDADD) @LIBINTL@
+test_exclude_LDADD = $(LDADD) @LIBINTL@ $(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
@@ -324,6 +427,23 @@ EXTRA_DIST += test-fstat.c signature.h macros.h
 
 ## end   gnulib module fstat-tests
 
+## begin gnulib module ftruncate
+
+
+EXTRA_DIST += ftruncate.c
+
+EXTRA_libtests_a_SOURCES += ftruncate.c
+
+## end   gnulib module ftruncate
+
+## begin gnulib module ftruncate-tests
+
+TESTS += test-ftruncate.sh
+check_PROGRAMS += test-ftruncate
+EXTRA_DIST += test-ftruncate.c test-ftruncate.sh signature.h macros.h
+
+## end   gnulib module ftruncate-tests
+
 ## begin gnulib module fwrite-tests
 
 TESTS += test-fwrite
@@ -425,6 +545,24 @@ EXTRA_DIST += test-ignore-value.c
 
 ## end   gnulib module ignore-value-tests
 
+## begin gnulib module inet_pton
+
+
+EXTRA_DIST += inet_pton.c
+
+EXTRA_libtests_a_SOURCES += inet_pton.c
+
+## end   gnulib module inet_pton
+
+## begin gnulib module inet_pton-tests
+
+TESTS += test-inet_pton
+check_PROGRAMS += test-inet_pton
+test_inet_pton_LDADD = $(LDADD) @INET_PTON_LIB@
+EXTRA_DIST += test-inet_pton.c signature.h macros.h
+
+## end   gnulib module inet_pton-tests
+
 ## begin gnulib module intprops-tests
 
 TESTS += test-intprops
@@ -449,6 +587,31 @@ EXTRA_DIST += test-inttypes.c
 
 ## end   gnulib module inttypes-tests
 
+## begin gnulib module ioctl
+
+
+EXTRA_DIST += ioctl.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += ioctl.c
+
+## end   gnulib module ioctl
+
+## begin gnulib module ioctl-tests
+
+TESTS += test-ioctl
+check_PROGRAMS += test-ioctl
+EXTRA_DIST += test-ioctl.c signature.h macros.h
+
+## end   gnulib module ioctl-tests
+
+## begin gnulib module isblank-tests
+
+TESTS += test-isblank
+check_PROGRAMS += test-isblank
+EXTRA_DIST += test-isblank.c signature.h macros.h
+
+## end   gnulib module isblank-tests
+
 ## begin gnulib module iswblank-tests
 
 TESTS += test-iswblank
@@ -465,6 +628,24 @@ EXTRA_DIST += test-langinfo.c
 
 ## end   gnulib module langinfo-tests
 
+## begin gnulib module listen
+
+
+EXTRA_DIST += listen.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += listen.c
+
+## end   gnulib module listen
+
+## begin gnulib module listen-tests
+
+TESTS += test-listen
+check_PROGRAMS += test-listen
+test_listen_LDADD = $(LDADD) @LIBSOCKET@
+EXTRA_DIST += test-listen.c signature.h macros.h
+
+## end   gnulib module listen-tests
+
 ## begin gnulib module locale-tests
 
 TESTS += test-locale
@@ -489,14 +670,6 @@ EXTRA_DIST += test-lstat.h test-lstat.c signature.h macros.h
 
 ## end   gnulib module lstat-tests
 
-## begin gnulib module malloc-gnu-tests
-
-TESTS += test-malloc-gnu
-check_PROGRAMS += test-malloc-gnu
-EXTRA_DIST += test-malloc-gnu.c
-
-## end   gnulib module malloc-gnu-tests
-
 ## begin gnulib module malloca-tests
 
 TESTS += test-malloca
@@ -510,6 +683,7 @@ EXTRA_DIST += test-malloca.c
 
 TESTS += \
   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
 TESTS_ENVIRONMENT += \
@@ -518,8 +692,7 @@ TESTS_ENVIRONMENT += \
   LOCALE_JA='@LOCALE_JA@' \
   LOCALE_ZH_CN='@LOCALE_ZH_CN@'
 check_PROGRAMS += test-mbrtowc test-mbrtowc-w32
-
-EXTRA_DIST += test-mbrtowc1.sh test-mbrtowc2.sh test-mbrtowc3.sh test-mbrtowc4.sh test-mbrtowc.c test-mbrtowc-w32-1.sh test-mbrtowc-w32-2.sh test-mbrtowc-w32-3.sh test-mbrtowc-w32-4.sh test-mbrtowc-w32-5.sh test-mbrtowc-w32.c signature.h macros.h
+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.c signature.h macros.h
 
 ## end   gnulib module mbrtowc-tests
 
@@ -575,6 +748,63 @@ EXTRA_DIST += test-memchr.c zerosize-ptr.h signature.h macros.h
 
 ## end   gnulib module memchr-tests
 
+## begin gnulib module nanosleep
+
+
+EXTRA_DIST += nanosleep.c
+
+EXTRA_libtests_a_SOURCES += nanosleep.c
+
+## end   gnulib module nanosleep
+
+## begin gnulib module nanosleep-tests
+
+TESTS += test-nanosleep
+check_PROGRAMS += test-nanosleep
+test_nanosleep_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+EXTRA_DIST += test-nanosleep.c signature.h macros.h
+
+## end   gnulib module nanosleep-tests
+
+## begin gnulib module netinet_in
+
+BUILT_SOURCES += $(NETINET_IN_H)
+
+# We need the following in order to create <netinet/in.h> when the system
+# 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' \
+             -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 $@
+else
+netinet/in.h: $(top_builddir)/config.status
+       rm -f $@
+endif
+MOSTLYCLEANFILES += netinet/in.h netinet/in.h-t
+MOSTLYCLEANDIRS += netinet
+
+EXTRA_DIST += netinet_in.in.h
+
+## end   gnulib module netinet_in
+
+## begin gnulib module netinet_in-tests
+
+TESTS += test-netinet_in
+check_PROGRAMS += test-netinet_in
+EXTRA_DIST += test-netinet_in.c
+
+## end   gnulib module netinet_in-tests
+
 ## begin gnulib module nl_langinfo-tests
 
 TESTS += test-nl_langinfo.sh
@@ -600,6 +830,40 @@ EXTRA_DIST += test-pathmax.c
 
 ## end   gnulib module pathmax-tests
 
+## begin gnulib module perror
+
+
+EXTRA_DIST += perror.c
+
+EXTRA_libtests_a_SOURCES += perror.c
+
+## end   gnulib module perror
+
+## begin gnulib module perror-tests
+
+TESTS += test-perror.sh test-perror2
+check_PROGRAMS += test-perror test-perror2
+EXTRA_DIST += macros.h signature.h test-perror.c test-perror2.c test-perror.sh
+
+## end   gnulib module perror-tests
+
+## begin gnulib module pipe-posix
+
+
+EXTRA_DIST += pipe.c
+
+EXTRA_libtests_a_SOURCES += pipe.c
+
+## end   gnulib module pipe-posix
+
+## begin gnulib module pipe-posix-tests
+
+TESTS += test-pipe
+check_PROGRAMS += test-pipe
+EXTRA_DIST += test-pipe.c signature.h macros.h
+
+## end   gnulib module pipe-posix-tests
+
 ## begin gnulib module putenv
 
 
@@ -614,7 +878,7 @@ EXTRA_libtests_a_SOURCES += putenv.c
 TESTS += test-quotearg-simple
 check_PROGRAMS += test-quotearg-simple
 test_quotearg_simple_LDADD = $(LDADD) @LIBINTL@
-EXTRA_DIST += test-quotearg-simple.c test-quotearg.h macros.h
+EXTRA_DIST += test-quotearg-simple.c test-quotearg.h macros.h zerosize-ptr.h
 
 ## end   gnulib module quotearg-simple-tests
 
@@ -626,6 +890,14 @@ EXTRA_DIST += test-raise.c signature.h macros.h
 
 ## end   gnulib module raise-tests
 
+## begin gnulib module rawmemchr-tests
+
+TESTS += test-rawmemchr
+check_PROGRAMS += test-rawmemchr
+EXTRA_DIST += test-rawmemchr.c zerosize-ptr.h signature.h macros.h
+
+## end   gnulib module rawmemchr-tests
+
 ## begin gnulib module readlink-tests
 
 TESTS += test-readlink
@@ -638,7 +910,7 @@ EXTRA_DIST += test-readlink.h test-readlink.c signature.h macros.h
 
 TESTS += test-regex
 check_PROGRAMS += test-regex
-test_regex_LDADD = $(LDADD) @LIBINTL@
+test_regex_LDADD = $(LDADD) @LIBINTL@ $(LIBTHREAD) $(LIB_PTHREAD)
 EXTRA_DIST += test-regex.c macros.h
 
 ## end   gnulib module regex-tests
@@ -650,14 +922,26 @@ EXTRA_DIST += same-inode.h
 
 ## end   gnulib module same-inode
 
-## begin gnulib module setenv
+## begin gnulib module select
+
+
+EXTRA_DIST += select.c
 
+EXTRA_libtests_a_SOURCES += select.c
 
-EXTRA_DIST += setenv.c
+## end   gnulib module select
 
-EXTRA_libtests_a_SOURCES += setenv.c
+## begin gnulib module select-tests
 
-## end   gnulib module setenv
+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@
+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
 
 ## begin gnulib module setenv-tests
 
@@ -689,6 +973,24 @@ EXTRA_DIST += test-setlocale1.sh test-setlocale1.c test-setlocale2.sh test-setlo
 
 ## end   gnulib module setlocale-tests
 
+## begin gnulib module setsockopt
+
+
+EXTRA_DIST += setsockopt.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += setsockopt.c
+
+## end   gnulib module setsockopt
+
+## begin gnulib module setsockopt-tests
+
+TESTS += test-setsockopt
+check_PROGRAMS += test-setsockopt
+test_setsockopt_LDADD = $(LDADD) @LIBSOCKET@
+EXTRA_DIST += test-setsockopt.c signature.h macros.h
+
+## end   gnulib module setsockopt-tests
+
 ## begin gnulib module sh-quote-tests
 
 TESTS += test-sh-quote
@@ -863,6 +1165,32 @@ EXTRA_DIST += test-snprintf.c signature.h macros.h
 
 ## end   gnulib module snprintf-tests
 
+## begin gnulib module socket
+
+
+EXTRA_DIST += socket.c w32sock.h
+
+EXTRA_libtests_a_SOURCES += socket.c
+
+## end   gnulib module socket
+
+## begin gnulib module sockets
+
+libtests_a_SOURCES += sockets.h sockets.c
+
+EXTRA_DIST += w32sock.h
+
+## end   gnulib module sockets
+
+## begin gnulib module sockets-tests
+
+TESTS += test-sockets
+check_PROGRAMS += test-sockets
+test_sockets_LDADD = $(LDADD) @LIBSOCKET@
+EXTRA_DIST += test-sockets.c
+
+## end   gnulib module sockets-tests
+
 ## begin gnulib module stat-tests
 
 TESTS += test-stat
@@ -876,10 +1204,42 @@ EXTRA_DIST += test-stat.h test-stat.c signature.h macros.h
 
 TESTS += test-stat-time
 check_PROGRAMS += test-stat-time
-EXTRA_DIST += test-stat-time.c macros.h
+test_stat_time_LDADD = $(LDADD) $(LIB_NANOSLEEP)
+EXTRA_DIST += test-stat-time.c macros.h nap.h
 
 ## end   gnulib module stat-time-tests
 
+## 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 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
@@ -928,6 +1288,23 @@ EXTRA_DIST += test-strerror.c signature.h macros.h
 
 ## end   gnulib module strerror-tests
 
+## begin gnulib module strerror_r-posix
+
+
+EXTRA_DIST += strerror_r.c
+
+EXTRA_libtests_a_SOURCES += strerror_r.c
+
+## end   gnulib module strerror_r-posix
+
+## begin gnulib module strerror_r-posix-tests
+
+TESTS += test-strerror_r
+check_PROGRAMS += test-strerror_r
+EXTRA_DIST += test-strerror_r.c signature.h macros.h
+
+## end   gnulib module strerror_r-posix-tests
+
 ## begin gnulib module strftime-tests
 
 TESTS += test-strftime
@@ -1003,6 +1380,148 @@ EXTRA_DIST += test-symlink.h test-symlink.c signature.h macros.h
 
 ## end   gnulib module symlink-tests
 
+## begin gnulib module sys_ioctl
+
+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' \
+             -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' \
+             -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+             -e 's|@''NEXT_SYS_IOCTL_H''@|$(NEXT_SYS_IOCTL_H)|g' \
+             -e 's/@''GNULIB_IOCTL''@/$(GNULIB_IOCTL)/g' \
+             -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \
+             -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \
+             -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 $@
+MOSTLYCLEANFILES += sys/ioctl.h sys/ioctl.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_ioctl.in.h
+
+## end   gnulib module sys_ioctl
+
+## begin gnulib module sys_ioctl-tests
+
+TESTS += test-sys_ioctl
+check_PROGRAMS += test-sys_ioctl
+EXTRA_DIST += test-sys_ioctl.c
+
+## end   gnulib module sys_ioctl-tests
+
+## begin gnulib module sys_select
+
+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' \
+             -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_SELECT_H''@|$(NEXT_SYS_SELECT_H)|g' \
+             -e 's|@''HAVE_SYS_SELECT_H''@|$(HAVE_SYS_SELECT_H)|g' \
+             -e 's/@''GNULIB_PSELECT''@/$(GNULIB_PSELECT)/g' \
+             -e 's/@''GNULIB_SELECT''@/$(GNULIB_SELECT)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+             -e 's|@''HAVE_PSELECT''@|$(HAVE_PSELECT)|g' \
+             -e 's|@''REPLACE_PSELECT''@|$(REPLACE_PSELECT)|g' \
+             -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 $@
+MOSTLYCLEANFILES += sys/select.h sys/select.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_select.in.h
+
+## end   gnulib module sys_select
+
+## begin gnulib module sys_select-tests
+
+TESTS += test-sys_select
+check_PROGRAMS += test-sys_select
+EXTRA_DIST += test-sys_select.c signature.h
+
+## end   gnulib module sys_select-tests
+
+## begin gnulib module sys_socket
+
+BUILT_SOURCES += sys/socket.h
+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' \
+             -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_SOCKET_H''@|$(NEXT_SYS_SOCKET_H)|g' \
+             -e 's|@''HAVE_SYS_SOCKET_H''@|$(HAVE_SYS_SOCKET_H)|g' \
+             -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+             -e 's/@''GNULIB_SOCKET''@/$(GNULIB_SOCKET)/g' \
+             -e 's/@''GNULIB_CONNECT''@/$(GNULIB_CONNECT)/g' \
+             -e 's/@''GNULIB_ACCEPT''@/$(GNULIB_ACCEPT)/g' \
+             -e 's/@''GNULIB_BIND''@/$(GNULIB_BIND)/g' \
+             -e 's/@''GNULIB_GETPEERNAME''@/$(GNULIB_GETPEERNAME)/g' \
+             -e 's/@''GNULIB_GETSOCKNAME''@/$(GNULIB_GETSOCKNAME)/g' \
+             -e 's/@''GNULIB_GETSOCKOPT''@/$(GNULIB_GETSOCKOPT)/g' \
+             -e 's/@''GNULIB_LISTEN''@/$(GNULIB_LISTEN)/g' \
+             -e 's/@''GNULIB_RECV''@/$(GNULIB_RECV)/g' \
+             -e 's/@''GNULIB_SEND''@/$(GNULIB_SEND)/g' \
+             -e 's/@''GNULIB_RECVFROM''@/$(GNULIB_RECVFROM)/g' \
+             -e 's/@''GNULIB_SENDTO''@/$(GNULIB_SENDTO)/g' \
+             -e 's/@''GNULIB_SETSOCKOPT''@/$(GNULIB_SETSOCKOPT)/g' \
+             -e 's/@''GNULIB_SHUTDOWN''@/$(GNULIB_SHUTDOWN)/g' \
+             -e 's/@''GNULIB_ACCEPT4''@/$(GNULIB_ACCEPT4)/g' \
+             -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \
+             -e 's|@''HAVE_WS2TCPIP_H''@|$(HAVE_WS2TCPIP_H)|g' \
+             -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE''@|$(HAVE_STRUCT_SOCKADDR_STORAGE)|g' \
+             -e 's|@''HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY''@|$(HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY)|g' \
+             -e 's|@''HAVE_SA_FAMILY_T''@|$(HAVE_SA_FAMILY_T)|g' \
+             -e 's|@''HAVE_ACCEPT4''@|$(HAVE_ACCEPT4)|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)/sys_socket.in.h; \
+       } > $@-t && \
+       mv -f $@-t $@
+MOSTLYCLEANFILES += sys/socket.h sys/socket.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_socket.in.h
+
+## end   gnulib module sys_socket
+
+## begin gnulib module sys_socket-tests
+
+TESTS += test-sys_socket
+check_PROGRAMS += test-sys_socket
+EXTRA_DIST += test-sys_socket.c
+
+## end   gnulib module sys_socket-tests
+
 ## begin gnulib module sys_stat-tests
 
 TESTS += test-sys_stat
@@ -1027,6 +1546,40 @@ EXTRA_DIST += test-sys_types.c
 
 ## end   gnulib module sys_types-tests
 
+## begin gnulib module sys_uio
+
+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' \
+             -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 $@
+MOSTLYCLEANFILES += sys/uio.h sys/uio.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_uio.in.h
+
+## end   gnulib module sys_uio
+
+## begin gnulib module sys_uio-tests
+
+TESTS += test-sys_uio
+check_PROGRAMS += test-sys_uio
+EXTRA_DIST += test-sys_uio.c
+
+## end   gnulib module sys_uio-tests
+
 ## begin gnulib module sys_wait-tests
 
 TESTS += test-sys_wait
@@ -1051,6 +1604,26 @@ EXTRA_DIST += test-time.c
 
 ## end   gnulib module time-tests
 
+## begin gnulib module timespec-add
+
+libtests_a_SOURCES += timespec-add.c
+
+## end   gnulib module timespec-add
+
+## begin gnulib module timespec-sub
+
+libtests_a_SOURCES += timespec-sub.c
+
+## end   gnulib module timespec-sub
+
+## begin gnulib module timespec-tests
+
+TESTS += test-timespec
+check_PROGRAMS += test-timespec
+EXTRA_DIST += test-timespec.c macros.h
+
+## end   gnulib module timespec-tests
+
 ## begin gnulib module unistd-tests
 
 TESTS += test-unistd
@@ -1091,15 +1664,6 @@ EXTRA_DIST += uniwidth/test-uc_width.c uniwidth/test-uc_width2.c uniwidth/test-u
 
 ## end   gnulib module uniwidth/width-tests
 
-## begin gnulib module unsetenv
-
-
-EXTRA_DIST += unsetenv.c
-
-EXTRA_libtests_a_SOURCES += unsetenv.c
-
-## end   gnulib module unsetenv
-
 ## begin gnulib module unsetenv-tests
 
 TESTS += test-unsetenv
@@ -1116,23 +1680,6 @@ EXTRA_DIST += test-update-copyright.sh
 
 ## end   gnulib module update-copyright-tests
 
-## begin gnulib module usleep
-
-
-EXTRA_DIST += usleep.c
-
-EXTRA_libtests_a_SOURCES += usleep.c
-
-## end   gnulib module usleep
-
-## begin gnulib module usleep-tests
-
-TESTS += test-usleep
-check_PROGRAMS += test-usleep
-EXTRA_DIST += test-usleep.c signature.h macros.h
-
-## end   gnulib module usleep-tests
-
 ## begin gnulib module vasnprintf-tests
 
 TESTS += test-vasnprintf
@@ -1165,6 +1712,11 @@ EXTRA_DIST += test-vc-list-files-git.sh test-vc-list-files-cvs.sh
 TESTS_ENVIRONMENT += MAKE='$(MAKE)'
 TESTS += test-verify test-verify.sh
 check_PROGRAMS += test-verify
+
+# This test expects compilation of test-verify.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 += .deps/test-verify.Tpo
 EXTRA_DIST += test-verify.c test-verify.sh
 
 ## end   gnulib module verify-tests
index e967a76..7796238 100644 (file)
@@ -1,6 +1,6 @@
 /* hash-pjw.c -- compute a hash value from a NUL-terminated string.
 
-   Copyright (C) 2001, 2003, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f6dcab8..ae537d1 100644 (file)
@@ -1,5 +1,5 @@
 /* hash-pjw.h -- declaration for a simple hash function
-   Copyright (C) 2001, 2003, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/inet_pton.c b/gnulib-tests/inet_pton.c
new file mode 100644 (file)
index 0000000..3cddfb1
--- /dev/null
@@ -0,0 +1,268 @@
+/* inet_pton.c -- convert IPv4 and IPv6 addresses from text to binary form
+
+   Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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/>.  */
+
+/*
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ */
+
+#include <config.h>
+
+/* Specification.  */
+#include <arpa/inet.h>
+
+#if HAVE_DECL_INET_PTON
+
+# undef inet_pton
+
+int
+rpl_inet_pton (int af, const char *restrict src, void *restrict dst)
+{
+  return inet_pton (af, src, dst);
+}
+
+#else
+
+# include <c-ctype.h>
+# include <string.h>
+# include <errno.h>
+
+# define NS_INADDRSZ 4
+# define NS_IN6ADDRSZ 16
+# define NS_INT16SZ 2
+
+/*
+ * WARNING: Don't even consider trying to compile this on a system where
+ * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
+ */
+
+static int inet_pton4 (const char *src, unsigned char *dst);
+# if HAVE_IPV6
+static int inet_pton6 (const char *src, unsigned char *dst);
+# endif
+
+/* int
+ * inet_pton(af, src, dst)
+ *      convert from presentation format (which usually means ASCII printable)
+ *      to network format (which is usually some kind of binary format).
+ * return:
+ *      1 if the address was valid for the specified address family
+ *      0 if the address wasn't valid ('dst' is untouched in this case)
+ *      -1 if some other error occurred ('dst' is untouched in this case, too)
+ * author:
+ *      Paul Vixie, 1996.
+ */
+int
+inet_pton (int af, const char *restrict src, void *restrict dst)
+{
+  switch (af)
+    {
+    case AF_INET:
+      return (inet_pton4 (src, dst));
+
+# if HAVE_IPV6
+    case AF_INET6:
+      return (inet_pton6 (src, dst));
+# endif
+
+    default:
+      errno = EAFNOSUPPORT;
+      return (-1);
+    }
+  /* NOTREACHED */
+}
+
+/* int
+ * inet_pton4(src, dst)
+ *      like inet_aton() but without all the hexadecimal, octal (with the
+ *      exception of 0) and shorthand.
+ * return:
+ *      1 if 'src' is a valid dotted quad, else 0.
+ * notice:
+ *      does not touch 'dst' unless it's returning 1.
+ * author:
+ *      Paul Vixie, 1996.
+ */
+static int
+inet_pton4 (const char *restrict src, unsigned char *restrict dst)
+{
+  int saw_digit, octets, ch;
+  unsigned char tmp[NS_INADDRSZ], *tp;
+
+  saw_digit = 0;
+  octets = 0;
+  *(tp = tmp) = 0;
+  while ((ch = *src++) != '\0')
+    {
+
+      if (ch >= '0' && ch <= '9')
+        {
+          unsigned new = *tp * 10 + (ch - '0');
+
+          if (saw_digit && *tp == 0)
+            return (0);
+          if (new > 255)
+            return (0);
+          *tp = new;
+          if (!saw_digit)
+            {
+              if (++octets > 4)
+                return (0);
+              saw_digit = 1;
+            }
+        }
+      else if (ch == '.' && saw_digit)
+        {
+          if (octets == 4)
+            return (0);
+          *++tp = 0;
+          saw_digit = 0;
+        }
+      else
+        return (0);
+    }
+  if (octets < 4)
+    return (0);
+  memcpy (dst, tmp, NS_INADDRSZ);
+  return (1);
+}
+
+# if HAVE_IPV6
+
+/* int
+ * inet_pton6(src, dst)
+ *      convert presentation level address to network order binary form.
+ * return:
+ *      1 if 'src' is a valid [RFC1884 2.2] address, else 0.
+ * notice:
+ *      (1) does not touch 'dst' unless it's returning 1.
+ *      (2) :: in a full address is silently ignored.
+ * credit:
+ *      inspired by Mark Andrews.
+ * author:
+ *      Paul Vixie, 1996.
+ */
+static int
+inet_pton6 (const char *restrict src, unsigned char *restrict dst)
+{
+  static const char xdigits[] = "0123456789abcdef";
+  unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
+  const char *curtok;
+  int ch, saw_xdigit;
+  unsigned val;
+
+  tp = memset (tmp, '\0', NS_IN6ADDRSZ);
+  endp = tp + NS_IN6ADDRSZ;
+  colonp = NULL;
+  /* Leading :: requires some special handling. */
+  if (*src == ':')
+    if (*++src != ':')
+      return (0);
+  curtok = src;
+  saw_xdigit = 0;
+  val = 0;
+  while ((ch = c_tolower (*src++)) != '\0')
+    {
+      const char *pch;
+
+      pch = strchr (xdigits, ch);
+      if (pch != NULL)
+        {
+          val <<= 4;
+          val |= (pch - xdigits);
+          if (val > 0xffff)
+            return (0);
+          saw_xdigit = 1;
+          continue;
+        }
+      if (ch == ':')
+        {
+          curtok = src;
+          if (!saw_xdigit)
+            {
+              if (colonp)
+                return (0);
+              colonp = tp;
+              continue;
+            }
+          else if (*src == '\0')
+            {
+              return (0);
+            }
+          if (tp + NS_INT16SZ > endp)
+            return (0);
+          *tp++ = (u_char) (val >> 8) & 0xff;
+          *tp++ = (u_char) val & 0xff;
+          saw_xdigit = 0;
+          val = 0;
+          continue;
+        }
+      if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
+          inet_pton4 (curtok, tp) > 0)
+        {
+          tp += NS_INADDRSZ;
+          saw_xdigit = 0;
+          break;                /* '\0' was seen by inet_pton4(). */
+        }
+      return (0);
+    }
+  if (saw_xdigit)
+    {
+      if (tp + NS_INT16SZ > endp)
+        return (0);
+      *tp++ = (u_char) (val >> 8) & 0xff;
+      *tp++ = (u_char) val & 0xff;
+    }
+  if (colonp != NULL)
+    {
+      /*
+       * Since some memmove()'s erroneously fail to handle
+       * overlapping regions, we'll do the shift by hand.
+       */
+      const int n = tp - colonp;
+      int i;
+
+      if (tp == endp)
+        return (0);
+      for (i = 1; i <= n; i++)
+        {
+          endp[-i] = colonp[n - i];
+          colonp[n - i] = 0;
+        }
+      tp = endp;
+    }
+  if (tp != endp)
+    return (0);
+  memcpy (dst, tmp, NS_IN6ADDRSZ);
+  return (1);
+}
+
+# endif
+
+#endif
index bd2048e..97e4e4b 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -93,6 +93,27 @@ skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
 fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
 framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
 
+# This is used to simplify checking of the return value
+# which is useful when ensuring a command fails as desired.
+# I.e., just doing `command ... &&fail=1` will not catch
+# a segfault in command for example.  With this helper you
+# instead check an explicit exit code like
+#   returns_ 1 command ... || fail
+returns_ () {
+  # Disable tracing so it doesn't interfere with stderr of the wrapped command
+  { set +x; } 2>/dev/null
+
+  local exp_exit="$1"
+  shift
+  "$@"
+  test $? -eq $exp_exit && ret_=0 || ret_=1
+
+  if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then
+    set -x
+  fi
+  { return $ret_; } 2>/dev/null
+}
+
 # Sanitize this shell to POSIX mode, if possible.
 DUALCASE=1; export DUALCASE
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -129,6 +150,7 @@ fi
 #  ? - not ok
 gl_shell_test_script_='
 test $(echo y) = y || exit 1
+f_local_() { local v=1; }; f_local_ || exit 1
 score_=10
 if test "$VERBOSE" = yes; then
   test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
@@ -201,6 +223,8 @@ else
       *x*) opts_=-x ;;
       *) opts_= ;;
     esac
+    re_shell=$re_shell_
+    export re_shell
     exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
     echo "$ME_: exec failed" 1>&2
     exit 127
@@ -284,13 +308,19 @@ if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
       fi
     }
   fi
-elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
+elif
+  for diff_opt_ in -U3 -c '' no; do
+    test "$diff_opt_" = no && break
+    diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" </dev/null` && break
+  done
+  test "$diff_opt_" != no
+then
   if test -z "$diff_out_"; then
-    compare_ () { diff -c "$@"; }
+    compare_ () { diff $diff_opt_ "$@"; }
   else
     compare_ ()
     {
-      if diff -c "$@" > diff.out; then
+      if diff $diff_opt_ "$@" > diff.out; then
         # No differences were found, but AIX and HP-UX 'diff' produce output
         # "No differences encountered" or "There are no differences between the
         # files.". Hide this output.
@@ -303,7 +333,7 @@ elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
       fi
     }
   fi
-elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
+elif cmp -s /dev/null /dev/null 2>/dev/null; then
   compare_ () { cmp -s "$@"; }
 else
   compare_ () { cmp "$@"; }
@@ -442,7 +472,6 @@ setup_ ()
   fi
 
   initial_cwd_=$PWD
-  fail=0
 
   pfx_=`testdir_prefix_`
   test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
@@ -526,8 +555,9 @@ mktempd_ ()
   # Disallow any trailing slash on specified destdir:
   # it would subvert the post-mktemp "case"-based destdir test.
   case $destdir_ in
-  /;;
+  / | //) destdir_slash_=$destdir;;
   */) fail_ "invalid destination dir: remove trailing slash(es)";;
+  *) destdir_slash_=$destdir_/;;
   esac
 
   case $template_ in
@@ -537,20 +567,17 @@ mktempd_ ()
   esac
 
   # First, try to use mktemp.
-  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
-    || fail=1
+  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` &&
 
   # The resulting name must be in the specified directory.
-  case $d in "$destdir_"*);; *) fail=1;; esac
+  case $d in "$destdir_slash_"*) :;; *) false;; esac &&
 
   # It must have created the directory.
-  test -d "$d" || fail=1
+  test -d "$d" &&
 
   # It must have 0700 permissions.  Handle sticky "S" bits.
-  perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1
-  case $perms in drwx------*) ;; *) fail=1;; esac
-
-  test $fail = 0 && {
+  perms=`ls -dgo "$d" 2>/dev/null` &&
+  case $perms in drwx--[-S]---*) :;; *) false;; esac && {
     echo "$d"
     return
   }
@@ -569,7 +596,7 @@ mktempd_ ()
   i_=1
   while :; do
     X_=`rand_bytes_ $nx_`
-    candidate_dir_="$destdir_/$base_template_$X_"
+    candidate_dir_="$destdir_slash_$base_template_$X_"
     err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \
       && { echo "$candidate_dir_"; return; }
     test $MAX_TRIES_ -le $i_ && break;
diff --git a/gnulib-tests/ioctl.c b/gnulib-tests/ioctl.c
new file mode 100644 (file)
index 0000000..bd3a198
--- /dev/null
@@ -0,0 +1,88 @@
+/* ioctl.c --- wrappers for Windows ioctl function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#include <sys/ioctl.h>
+
+#include <stdarg.h>
+
+#if HAVE_IOCTL
+
+/* Provide a wrapper with the POSIX prototype.  */
+# undef ioctl
+int
+rpl_ioctl (int fd, int request, ... /* {void *,char *} arg */)
+{
+  void *buf;
+  va_list args;
+
+  va_start (args, request);
+  buf = va_arg (args, void *);
+  va_end (args);
+
+  /* Cast 'request' so that when the system's ioctl function takes a 64-bit
+     request argument, the value gets zero-extended, not sign-extended.  */
+  return ioctl (fd, (unsigned int) request, buf);
+}
+
+#else /* mingw */
+
+# include <errno.h>
+
+/* Get HANDLE.  */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+# include "fd-hook.h"
+/* Get _get_osfhandle.  */
+# include "msvc-nothrow.h"
+
+static int
+primary_ioctl (int fd, int request, void *arg)
+{
+  /* We don't support FIONBIO on pipes here.  If you want to make pipe
+     fds non-blocking, use the gnulib 'nonblocking' module, until
+     gnulib implements fcntl F_GETFL / F_SETFL with O_NONBLOCK.  */
+
+  if ((HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE)
+    errno = ENOSYS;
+  else
+    errno = EBADF;
+  return -1;
+}
+
+int
+ioctl (int fd, int request, ... /* {void *,char *} arg */)
+{
+  void *arg;
+  va_list args;
+
+  va_start (args, request);
+  arg = va_arg (args, void *);
+  va_end (args);
+
+# if WINDOWS_SOCKETS
+  return execute_all_ioctl_hooks (primary_ioctl, fd, request, arg);
+# else
+  return primary_ioctl (fd, request, arg);
+# endif
+}
+
+#endif
diff --git a/gnulib-tests/listen.c b/gnulib-tests/listen.c
new file mode 100644 (file)
index 0000000..fd59f75
--- /dev/null
@@ -0,0 +1,49 @@
+/* listen.c --- wrappers for Windows listen function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#undef listen
+
+int
+rpl_listen (int fd, int backlog)
+{
+  SOCKET sock = FD_TO_SOCKET (fd);
+
+  if (sock == INVALID_SOCKET)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  else
+    {
+      int r = listen (sock, backlog);
+      if (r < 0)
+        set_winsock_errno ();
+
+      return r;
+    }
+}
index 60ba894..578bfe7 100644 (file)
@@ -1,5 +1,5 @@
 /* Common macros used by gnulib tests.
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -48,8 +48,8 @@
     {                                                                        \
       if (!(expr))                                                           \
         {                                                                    \
-          fprintf (ASSERT_STREAM, "%s:%d: assertion failed\n",               \
-                   __FILE__, __LINE__);                                      \
+          fprintf (ASSERT_STREAM, "%s:%d: assertion '%s' failed\n",     \
+                   __FILE__, __LINE__, #expr);                          \
           fflush (ASSERT_STREAM);                                            \
           abort ();                                                          \
         }                                                                    \
diff --git a/gnulib-tests/nanosleep.c b/gnulib-tests/nanosleep.c
new file mode 100644 (file)
index 0000000..a3116c2
--- /dev/null
@@ -0,0 +1,276 @@
+/* Provide a replacement for the POSIX nanosleep function.
+
+   Copyright (C) 1999-2000, 2002, 2004-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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 Jim Meyering
+   and Bruno Haible for the native Windows part */
+
+#include <config.h>
+
+#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>
+
+
+enum { BILLION = 1000 * 1000 * 1000 };
+
+#if HAVE_BUG_BIG_NANOSLEEP
+
+int
+nanosleep (const struct timespec *requested_delay,
+           struct timespec *remaining_delay)
+# undef nanosleep
+{
+  /* nanosleep mishandles large sleeps due to internal overflow problems.
+     The worst known case of this is Linux 2.6.9 with glibc 2.3.4, which
+     can't sleep more than 24.85 days (2^31 milliseconds).  Similarly,
+     cygwin 1.5.x, which can't sleep more than 49.7 days (2^32 milliseconds).
+     Solve this by breaking the sleep up into smaller chunks.  */
+
+  if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  {
+    /* Verify that time_t is large enough.  */
+    verify (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;
+
+    while (limit < seconds)
+      {
+        int result;
+        intermediate.tv_sec = limit;
+        result = nanosleep (&intermediate, remaining_delay);
+        seconds -= limit;
+        if (result)
+          {
+            if (remaining_delay)
+              remaining_delay->tv_sec += seconds;
+            return result;
+          }
+        intermediate.tv_nsec = 0;
+      }
+    intermediate.tv_sec = seconds;
+    return nanosleep (&intermediate, remaining_delay);
+  }
+}
+
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Native Windows platforms.  */
+
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+/* The Windows API function Sleep() has a resolution of about 15 ms and takes
+   at least 5 ms to execute.  We use this function for longer time periods.
+   Additionally, we use busy-looping over short time periods, to get a
+   resolution of about 0.01 ms.  In order to measure such short timespans,
+   we use the QueryPerformanceCounter() function.  */
+
+int
+nanosleep (const struct timespec *requested_delay,
+           struct timespec *remaining_delay)
+{
+  static bool initialized;
+  /* Number of performance counter increments per nanosecond,
+     or zero if it could not be determined.  */
+  static double ticks_per_nanosecond;
+
+  if (requested_delay->tv_nsec < 0 || BILLION <= requested_delay->tv_nsec)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+
+  /* For requested delays of one second or more, 15ms resolution is
+     sufficient.  */
+  if (requested_delay->tv_sec == 0)
+    {
+      if (!initialized)
+        {
+          /* Initialize ticks_per_nanosecond.  */
+          LARGE_INTEGER ticks_per_second;
+
+          if (QueryPerformanceFrequency (&ticks_per_second))
+            ticks_per_nanosecond =
+              (double) ticks_per_second.QuadPart / 1000000000.0;
+
+          initialized = true;
+        }
+      if (ticks_per_nanosecond)
+        {
+          /* QueryPerformanceFrequency worked.  We can use
+             QueryPerformanceCounter.  Use a combination of Sleep and
+             busy-looping.  */
+          /* Number of milliseconds to pass to the Sleep function.
+             Since Sleep can take up to 8 ms less or 8 ms more than requested
+             (or maybe more if the system is loaded), we subtract 10 ms.  */
+          int sleep_millis = (int) requested_delay->tv_nsec / 1000000 - 10;
+          /* Determine how many ticks to delay.  */
+          LONGLONG wait_ticks = requested_delay->tv_nsec * ticks_per_nanosecond;
+          /* Start.  */
+          LARGE_INTEGER counter_before;
+          if (QueryPerformanceCounter (&counter_before))
+            {
+              /* Wait until the performance counter has reached this value.
+                 We don't need to worry about overflow, because the performance
+                 counter is reset at reboot, and with a frequency of 3.6E6
+                 ticks per second 63 bits suffice for over 80000 years.  */
+              LONGLONG wait_until = counter_before.QuadPart + wait_ticks;
+              /* Use Sleep for the longest part.  */
+              if (sleep_millis > 0)
+                Sleep (sleep_millis);
+              /* Busy-loop for the rest.  */
+              for (;;)
+                {
+                  LARGE_INTEGER counter_after;
+                  if (!QueryPerformanceCounter (&counter_after))
+                    /* QueryPerformanceCounter failed, but succeeded earlier.
+                       Should not happen.  */
+                    break;
+                  if (counter_after.QuadPart >= wait_until)
+                    /* The requested time has elapsed.  */
+                    break;
+                }
+              goto done;
+            }
+        }
+    }
+  /* Implementation for long delays and as fallback.  */
+  Sleep (requested_delay->tv_sec * 1000 + requested_delay->tv_nsec / 1000000);
+
+ done:
+  /* Sleep is not interruptible.  So there is no remaining delay.  */
+  if (remaining_delay != NULL)
+    {
+      remaining_delay->tv_sec = 0;
+      remaining_delay->tv_nsec = 0;
+    }
+  return 0;
+}
+
+#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 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);
+}
+
+/* Suspend execution for at least *REQUESTED_DELAY seconds.  The
+   *REMAINING_DELAY part isn't implemented yet.  */
+
+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;
+}
+#endif
diff --git a/gnulib-tests/nap.h b/gnulib-tests/nap.h
new file mode 100644 (file)
index 0000000..6d46a36
--- /dev/null
@@ -0,0 +1,128 @@
+/* Assist in file system timestamp tests.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
+
+#ifndef GLTEST_NAP_H
+# define GLTEST_NAP_H
+
+# include <limits.h>
+# include <stdbool.h>
+
+/* File descriptor used for the witness file.  */
+static int nap_fd = -1;
+
+/* Return A - B, in ns.
+   Return 0 if the true result would be negative.
+   Return INT_MAX if the true result would be greater than INT_MAX.  */
+static int
+diff_timespec (struct timespec a, struct timespec b)
+{
+  time_t as = a.tv_sec;
+  time_t bs = b.tv_sec;
+  int ans = a.tv_nsec;
+  int bns = b.tv_nsec;
+
+  if (! (bs < as || (bs == as && bns < ans)))
+    return 0;
+  if (as - bs <= INT_MAX / 1000000000)
+    {
+      int sdiff = (as - bs) * 1000000000;
+      int usdiff = ans - bns;
+      if (usdiff < INT_MAX - sdiff)
+        return sdiff + usdiff;
+    }
+  return INT_MAX;
+}
+
+static void
+get_stat (int fd, struct stat *st, int do_write)
+{
+  if (do_write)
+    ASSERT (write (fd, "\n", 1) == 1);
+  ASSERT (fstat (fd, st) == 0);
+}
+
+/* Given a file whose descriptor is FD, see whether delaying by DELAY
+   nanoseconds causes a change in a file's ctime and mtime.
+   OLD_ST is the file's status, recently gotten.  */
+static bool
+nap_works (int fd, int delay, struct stat old_st)
+{
+  struct stat st;
+  struct timespec delay_spec;
+  delay_spec.tv_sec = delay / 1000000000;
+  delay_spec.tv_nsec = delay % 1000000000;
+  ASSERT (nanosleep (&delay_spec, 0) == 0);
+  get_stat (fd, &st, 1);
+
+  if (   diff_timespec (get_stat_ctime (&st), get_stat_ctime (&old_st))
+      && diff_timespec (get_stat_mtime (&st), get_stat_mtime (&old_st)))
+    return true;
+
+  return false;
+}
+
+#define TEMPFILE BASE "nap.tmp"
+
+static void
+clear_temp_file (void)
+{
+  if (0 <= nap_fd)
+    {
+      ASSERT (close (nap_fd) != -1);
+      ASSERT (unlink (TEMPFILE) != -1);
+    }
+}
+
+/* Sleep long enough to notice a timestamp difference on the file
+   system in the current directory.  Use an adaptive approach, trying
+   to find the smallest delay which works on the current file system
+   to make the timestamp difference appear.  Assert a maximum delay of
+   ~2 seconds, more precisely sum(2^n) from 0 to 30 = 2^31 - 1 = 2.1s.
+   Assumes that BASE is defined, and requires that the test module
+   depends on nanosleep.  */
+static void
+nap (void)
+{
+  struct stat old_st;
+  static int delay = 1;
+
+  if (-1 == nap_fd)
+    {
+      atexit (clear_temp_file);
+      ASSERT ((nap_fd = creat (TEMPFILE, 0600)) != -1);
+      get_stat (nap_fd, &old_st, 0);
+    }
+  else
+    {
+      ASSERT (0 <= nap_fd);
+      get_stat (nap_fd, &old_st, 1);
+    }
+
+  if (1 < delay)
+    delay = delay / 2;  /* Try half of the previous delay.  */
+  ASSERT (0 < delay);
+
+  for ( ; delay <= 2147483647; delay = delay * 2)
+    if (nap_works (nap_fd, delay, old_st))
+      return;
+
+  /* Bummer: even the highest nap delay didn't work. */
+  ASSERT (0);
+}
+
+#endif /* GLTEST_NAP_H */
diff --git a/gnulib-tests/netinet_in.in.h b/gnulib-tests/netinet_in.in.h
new file mode 100644 (file)
index 0000000..54e1ec0
--- /dev/null
@@ -0,0 +1,47 @@
+/* Substitute for <netinet/in.h>.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _@GUARD_PREFIX@_NETINET_IN_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if @HAVE_NETINET_IN_H@
+
+/* On many platforms, <netinet/in.h> assumes prior inclusion of
+   <sys/types.h>.  */
+# include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_NETINET_IN_H@
+
+#endif
+
+#ifndef _@GUARD_PREFIX@_NETINET_IN_H
+#define _@GUARD_PREFIX@_NETINET_IN_H
+
+#if !@HAVE_NETINET_IN_H@
+
+/* A platform that lacks <netinet/in.h>.  */
+
+# include <sys/socket.h>
+
+#endif
+
+#endif /* _@GUARD_PREFIX@_NETINET_IN_H */
+#endif /* _@GUARD_PREFIX@_NETINET_IN_H */
diff --git a/gnulib-tests/perror.c b/gnulib-tests/perror.c
new file mode 100644 (file)
index 0000000..09dafb6
--- /dev/null
@@ -0,0 +1,49 @@
+/* Print a message describing error code.
+   Copyright (C) 2008-2016 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
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <stdio.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "strerror-override.h"
+
+/* Use the system functions, not the gnulib overrides in this file.  */
+#undef fprintf
+
+void
+perror (const char *string)
+{
+  char stackbuf[STACKBUF_LEN];
+  int ret;
+
+  /* Our implementation guarantees that this will be a non-empty
+     string, even if it returns EINVAL; and stackbuf should be sized
+     large enough to avoid ERANGE.  */
+  ret = strerror_r (errno, stackbuf, sizeof stackbuf);
+  if (ret == ERANGE)
+    abort ();
+
+  if (string != NULL && *string != '\0')
+    fprintf (stderr, "%s: %s\n", string, stackbuf);
+  else
+    fprintf (stderr, "%s\n", stackbuf);
+}
diff --git a/gnulib-tests/pipe.c b/gnulib-tests/pipe.c
new file mode 100644 (file)
index 0000000..cc8e184
--- /dev/null
@@ -0,0 +1,50 @@
+/* Create a pipe.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Native Windows API.  */
+
+/* Get _pipe().  */
+# include <io.h>
+
+/* Get _O_BINARY.  */
+# include <fcntl.h>
+
+int
+pipe (int fd[2])
+{
+  /* Mingw changes fd to {-1,-1} on failure, but this violates
+     http://austingroupbugs.net/view.php?id=467 */
+  int tmp[2];
+  int result = _pipe (tmp, 4096, _O_BINARY);
+  if (!result)
+    {
+      fd[0] = tmp[0];
+      fd[1] = tmp[1];
+    }
+  return result;
+}
+
+#else
+
+# error "This platform lacks a pipe function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib."
+
+#endif
index 5461273..e67712d 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2013 Free Software
+/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2016 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
index 3843b07..bf45635 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether two stat buffers refer to the same file.
 
-   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/select.c b/gnulib-tests/select.c
new file mode 100644 (file)
index 0000000..73abcf3
--- /dev/null
@@ -0,0 +1,575 @@
+/* Emulation for select(2)
+   Contributed by Paolo Bonzini.
+
+   Copyright 2008-2016 Free Software Foundation, Inc.
+
+   This file is part of gnulib.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+#include <alloca.h>
+#include <assert.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Native Windows.  */
+
+#include <sys/types.h>
+#include <errno.h>
+#include <limits.h>
+
+#include <winsock2.h>
+#include <windows.h>
+#include <io.h>
+#include <stdio.h>
+#include <conio.h>
+#include <time.h>
+
+/* Get the overridden 'struct timeval'.  */
+#include <sys/time.h>
+
+#include "msvc-nothrow.h"
+
+#undef select
+
+struct bitset {
+  unsigned char in[FD_SETSIZE / CHAR_BIT];
+  unsigned char out[FD_SETSIZE / CHAR_BIT];
+};
+
+/* Declare data structures for ntdll functions.  */
+typedef struct _FILE_PIPE_LOCAL_INFORMATION {
+  ULONG NamedPipeType;
+  ULONG NamedPipeConfiguration;
+  ULONG MaximumInstances;
+  ULONG CurrentInstances;
+  ULONG InboundQuota;
+  ULONG ReadDataAvailable;
+  ULONG OutboundQuota;
+  ULONG WriteQuotaAvailable;
+  ULONG NamedPipeState;
+  ULONG NamedPipeEnd;
+} FILE_PIPE_LOCAL_INFORMATION, *PFILE_PIPE_LOCAL_INFORMATION;
+
+typedef struct _IO_STATUS_BLOCK
+{
+  union {
+    DWORD Status;
+    PVOID Pointer;
+  } u;
+  ULONG_PTR Information;
+} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
+
+typedef enum _FILE_INFORMATION_CLASS {
+  FilePipeLocalInformation = 24
+} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
+
+typedef DWORD (WINAPI *PNtQueryInformationFile)
+         (HANDLE, IO_STATUS_BLOCK *, VOID *, ULONG, FILE_INFORMATION_CLASS);
+
+#ifndef PIPE_BUF
+#define PIPE_BUF        512
+#endif
+
+static BOOL IsConsoleHandle (HANDLE h)
+{
+  DWORD mode;
+  return GetConsoleMode (h, &mode) != 0;
+}
+
+static BOOL
+IsSocketHandle (HANDLE h)
+{
+  WSANETWORKEVENTS ev;
+
+  if (IsConsoleHandle (h))
+    return FALSE;
+
+  /* Under Wine, it seems that getsockopt returns 0 for pipes too.
+     WSAEnumNetworkEvents instead distinguishes the two correctly.  */
+  ev.lNetworkEvents = 0xDEADBEEF;
+  WSAEnumNetworkEvents ((SOCKET) h, NULL, &ev);
+  return ev.lNetworkEvents != 0xDEADBEEF;
+}
+
+/* Compute output fd_sets for libc descriptor FD (whose Windows handle is
+   H).  */
+
+static int
+windows_poll_handle (HANDLE h, int fd,
+                     struct bitset *rbits,
+                     struct bitset *wbits,
+                     struct bitset *xbits)
+{
+  BOOL read, write, except;
+  int i, ret;
+  INPUT_RECORD *irbuffer;
+  DWORD avail, nbuffer;
+  BOOL bRet;
+  IO_STATUS_BLOCK iosb;
+  FILE_PIPE_LOCAL_INFORMATION fpli;
+  static PNtQueryInformationFile NtQueryInformationFile;
+  static BOOL once_only;
+
+  read = write = except = FALSE;
+  switch (GetFileType (h))
+    {
+    case FILE_TYPE_DISK:
+      read = TRUE;
+      write = TRUE;
+      break;
+
+    case FILE_TYPE_PIPE:
+      if (!once_only)
+        {
+          NtQueryInformationFile = (PNtQueryInformationFile)
+            GetProcAddress (GetModuleHandle ("ntdll.dll"),
+                            "NtQueryInformationFile");
+          once_only = TRUE;
+        }
+
+      if (PeekNamedPipe (h, NULL, 0, NULL, &avail, NULL) != 0)
+        {
+          if (avail)
+            read = TRUE;
+        }
+      else if (GetLastError () == ERROR_BROKEN_PIPE)
+        ;
+
+      else
+        {
+          /* It was the write-end of the pipe.  Check if it is writable.
+             If NtQueryInformationFile fails, optimistically assume the pipe is
+             writable.  This could happen on Windows 9x, where
+             NtQueryInformationFile is not available, or if we inherit a pipe
+             that doesn't permit FILE_READ_ATTRIBUTES access on the write end
+             (I think this should not happen since Windows XP SP2; WINE seems
+             fine too).  Otherwise, ensure that enough space is available for
+             atomic writes.  */
+          memset (&iosb, 0, sizeof (iosb));
+          memset (&fpli, 0, sizeof (fpli));
+
+          if (!NtQueryInformationFile
+              || NtQueryInformationFile (h, &iosb, &fpli, sizeof (fpli),
+                                         FilePipeLocalInformation)
+              || fpli.WriteQuotaAvailable >= PIPE_BUF
+              || (fpli.OutboundQuota < PIPE_BUF &&
+                  fpli.WriteQuotaAvailable == fpli.OutboundQuota))
+            write = TRUE;
+        }
+      break;
+
+    case FILE_TYPE_CHAR:
+      write = TRUE;
+      if (!(rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
+        break;
+
+      ret = WaitForSingleObject (h, 0);
+      if (ret == WAIT_OBJECT_0)
+        {
+          if (!IsConsoleHandle (h))
+            {
+              read = TRUE;
+              break;
+            }
+
+          nbuffer = avail = 0;
+          bRet = GetNumberOfConsoleInputEvents (h, &nbuffer);
+
+          /* Screen buffers handles are filtered earlier.  */
+          assert (bRet);
+          if (nbuffer == 0)
+            {
+              except = TRUE;
+              break;
+            }
+
+          irbuffer = (INPUT_RECORD *) alloca (nbuffer * sizeof (INPUT_RECORD));
+          bRet = PeekConsoleInput (h, irbuffer, nbuffer, &avail);
+          if (!bRet || avail == 0)
+            {
+              except = TRUE;
+              break;
+            }
+
+          for (i = 0; i < avail; i++)
+            if (irbuffer[i].EventType == KEY_EVENT)
+              read = TRUE;
+        }
+      break;
+
+    default:
+      ret = WaitForSingleObject (h, 0);
+      write = TRUE;
+      if (ret == WAIT_OBJECT_0)
+        read = TRUE;
+
+      break;
+    }
+
+  ret = 0;
+  if (read && (rbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
+    {
+      rbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1)));
+      ret++;
+    }
+
+  if (write && (wbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
+    {
+      wbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1)));
+      ret++;
+    }
+
+  if (except && (xbits->in[fd / CHAR_BIT] & (1 << (fd & (CHAR_BIT - 1)))))
+    {
+      xbits->out[fd / CHAR_BIT] |= (1 << (fd & (CHAR_BIT - 1)));
+      ret++;
+    }
+
+  return ret;
+}
+
+int
+rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
+            struct timeval *timeout)
+#undef timeval
+{
+  static struct timeval tv0;
+  static HANDLE hEvent;
+  HANDLE h, handle_array[FD_SETSIZE + 2];
+  fd_set handle_rfds, handle_wfds, handle_xfds;
+  struct bitset rbits, wbits, xbits;
+  unsigned char anyfds_in[FD_SETSIZE / CHAR_BIT];
+  DWORD ret, wait_timeout, nhandles, nsock, nbuffer;
+  MSG msg;
+  int i, fd, rc;
+  clock_t tend;
+
+  if (nfds > FD_SETSIZE)
+    nfds = FD_SETSIZE;
+
+  if (!timeout)
+    wait_timeout = INFINITE;
+  else
+    {
+      wait_timeout = timeout->tv_sec * 1000 + timeout->tv_usec / 1000;
+
+      /* select is also used as a portable usleep.  */
+      if (!rfds && !wfds && !xfds)
+        {
+          Sleep (wait_timeout);
+          return 0;
+        }
+    }
+
+  if (!hEvent)
+    hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
+
+  handle_array[0] = hEvent;
+  nhandles = 1;
+  nsock = 0;
+
+  /* Copy descriptors to bitsets.  At the same time, eliminate
+     bits in the "wrong" direction for console input buffers
+     and screen buffers, because screen buffers are waitable
+     and they will block until a character is available.  */
+  memset (&rbits, 0, sizeof (rbits));
+  memset (&wbits, 0, sizeof (wbits));
+  memset (&xbits, 0, sizeof (xbits));
+  memset (anyfds_in, 0, sizeof (anyfds_in));
+  if (rfds)
+    for (i = 0; i < rfds->fd_count; i++)
+      {
+        fd = rfds->fd_array[i];
+        h = (HANDLE) _get_osfhandle (fd);
+        if (IsConsoleHandle (h)
+            && !GetNumberOfConsoleInputEvents (h, &nbuffer))
+          continue;
+
+        rbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+        anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+      }
+  else
+    rfds = (fd_set *) alloca (sizeof (fd_set));
+
+  if (wfds)
+    for (i = 0; i < wfds->fd_count; i++)
+      {
+        fd = wfds->fd_array[i];
+        h = (HANDLE) _get_osfhandle (fd);
+        if (IsConsoleHandle (h)
+            && GetNumberOfConsoleInputEvents (h, &nbuffer))
+          continue;
+
+        wbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+        anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+      }
+  else
+    wfds = (fd_set *) alloca (sizeof (fd_set));
+
+  if (xfds)
+    for (i = 0; i < xfds->fd_count; i++)
+      {
+        fd = xfds->fd_array[i];
+        xbits.in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+        anyfds_in[fd / CHAR_BIT] |= 1 << (fd & (CHAR_BIT - 1));
+      }
+  else
+    xfds = (fd_set *) alloca (sizeof (fd_set));
+
+  /* Zero all the fd_sets, including the application's.  */
+  FD_ZERO (rfds);
+  FD_ZERO (wfds);
+  FD_ZERO (xfds);
+  FD_ZERO (&handle_rfds);
+  FD_ZERO (&handle_wfds);
+  FD_ZERO (&handle_xfds);
+
+  /* Classify handles.  Create fd sets for sockets, poll the others. */
+  for (i = 0; i < nfds; i++)
+    {
+      if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
+        continue;
+
+      h = (HANDLE) _get_osfhandle (i);
+      if (!h)
+        {
+          errno = EBADF;
+          return -1;
+        }
+
+      if (IsSocketHandle (h))
+        {
+          int requested = FD_CLOSE;
+
+          /* See above; socket handles are mapped onto select, but we
+             need to map descriptors to handles.  */
+          if (rbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            {
+              requested |= FD_READ | FD_ACCEPT;
+              FD_SET ((SOCKET) h, rfds);
+              FD_SET ((SOCKET) h, &handle_rfds);
+            }
+          if (wbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            {
+              requested |= FD_WRITE | FD_CONNECT;
+              FD_SET ((SOCKET) h, wfds);
+              FD_SET ((SOCKET) h, &handle_wfds);
+            }
+          if (xbits.in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            {
+              requested |= FD_OOB;
+              FD_SET ((SOCKET) h, xfds);
+              FD_SET ((SOCKET) h, &handle_xfds);
+            }
+
+          WSAEventSelect ((SOCKET) h, hEvent, requested);
+          nsock++;
+        }
+      else
+        {
+          handle_array[nhandles++] = h;
+
+          /* Poll now.  If we get an event, do not wait below.  */
+          if (wait_timeout != 0
+              && windows_poll_handle (h, i, &rbits, &wbits, &xbits))
+            wait_timeout = 0;
+        }
+    }
+
+  /* Place a sentinel at the end of the array.  */
+  handle_array[nhandles] = NULL;
+
+  /* When will the waiting period expire?  */
+  if (wait_timeout != INFINITE)
+    tend = clock () + wait_timeout;
+
+restart:
+  if (wait_timeout == 0 || nsock == 0)
+    rc = 0;
+  else
+    {
+      /* See if we need to wait in the loop below.  If any select is ready,
+         do MsgWaitForMultipleObjects anyway to dispatch messages, but
+         no need to call select again.  */
+      rc = select (0, &handle_rfds, &handle_wfds, &handle_xfds, &tv0);
+      if (rc == 0)
+        {
+          /* Restore the fd_sets for the other select we do below.  */
+          memcpy (&handle_rfds, rfds, sizeof (fd_set));
+          memcpy (&handle_wfds, wfds, sizeof (fd_set));
+          memcpy (&handle_xfds, xfds, sizeof (fd_set));
+        }
+      else
+        wait_timeout = 0;
+    }
+
+  /* How much is left to wait?  */
+  if (wait_timeout != INFINITE)
+    {
+      clock_t tnow = clock ();
+      if (tend >= tnow)
+        wait_timeout = tend - tnow;
+      else
+        wait_timeout = 0;
+    }
+
+  for (;;)
+    {
+      ret = MsgWaitForMultipleObjects (nhandles, handle_array, FALSE,
+                                       wait_timeout, QS_ALLINPUT);
+
+      if (ret == WAIT_OBJECT_0 + nhandles)
+        {
+          /* new input of some other kind */
+          BOOL bRet;
+          while ((bRet = PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) != 0)
+            {
+              TranslateMessage (&msg);
+              DispatchMessage (&msg);
+            }
+        }
+      else
+        break;
+    }
+
+  /* If we haven't done it yet, check the status of the sockets.  */
+  if (rc == 0 && nsock > 0)
+    rc = select (0, &handle_rfds, &handle_wfds, &handle_xfds, &tv0);
+
+  if (nhandles > 1)
+    {
+      /* Count results that are not counted in the return value of select.  */
+      nhandles = 1;
+      for (i = 0; i < nfds; i++)
+        {
+          if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
+            continue;
+
+          h = (HANDLE) _get_osfhandle (i);
+          if (h == handle_array[nhandles])
+            {
+              /* Not a socket.  */
+              nhandles++;
+              windows_poll_handle (h, i, &rbits, &wbits, &xbits);
+              if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
+                  || wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))
+                  || xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+                rc++;
+            }
+        }
+
+      if (rc == 0
+          && (wait_timeout == INFINITE
+              /* If NHANDLES > 1, but no bits are set, it means we've
+                 been told incorrectly that some handle was signaled.
+                 This happens with anonymous pipes, which always cause
+                 MsgWaitForMultipleObjects to exit immediately, but no
+                 data is found ready to be read by windows_poll_handle.
+                 To avoid a total failure (whereby we return zero and
+                 don't wait at all), let's poll in a more busy loop.  */
+              || (wait_timeout != 0 && nhandles > 1)))
+        {
+          /* Sleep 1 millisecond to avoid busy wait and retry with the
+             original fd_sets.  */
+          memcpy (&handle_rfds, rfds, sizeof (fd_set));
+          memcpy (&handle_wfds, wfds, sizeof (fd_set));
+          memcpy (&handle_xfds, xfds, sizeof (fd_set));
+          SleepEx (1, TRUE);
+          goto restart;
+        }
+      if (timeout && wait_timeout == 0 && rc == 0)
+        timeout->tv_sec = timeout->tv_usec = 0;
+    }
+
+  /* Now fill in the results.  */
+  FD_ZERO (rfds);
+  FD_ZERO (wfds);
+  FD_ZERO (xfds);
+  nhandles = 1;
+  for (i = 0; i < nfds; i++)
+    {
+      if ((anyfds_in[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1)))) == 0)
+        continue;
+
+      h = (HANDLE) _get_osfhandle (i);
+      if (h != handle_array[nhandles])
+        {
+          /* Perform handle->descriptor mapping.  */
+          WSAEventSelect ((SOCKET) h, NULL, 0);
+          if (FD_ISSET (h, &handle_rfds))
+            FD_SET (i, rfds);
+          if (FD_ISSET (h, &handle_wfds))
+            FD_SET (i, wfds);
+          if (FD_ISSET (h, &handle_xfds))
+            FD_SET (i, xfds);
+        }
+      else
+        {
+          /* Not a socket.  */
+          nhandles++;
+          if (rbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            FD_SET (i, rfds);
+          if (wbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            FD_SET (i, wfds);
+          if (xbits.out[i / CHAR_BIT] & (1 << (i & (CHAR_BIT - 1))))
+            FD_SET (i, xfds);
+        }
+    }
+
+  return rc;
+}
+
+#else /* ! Native Windows.  */
+
+#include <sys/select.h>
+#include <stddef.h> /* NULL */
+#include <errno.h>
+#include <unistd.h>
+
+#undef select
+
+int
+rpl_select (int nfds, fd_set *rfds, fd_set *wfds, fd_set *xfds,
+            struct timeval *timeout)
+{
+  int i;
+
+  /* FreeBSD 8.2 has a bug: it does not always detect invalid fds.  */
+  if (nfds < 0 || nfds > FD_SETSIZE)
+    {
+      errno = EINVAL;
+      return -1;
+    }
+  for (i = 0; i < nfds; i++)
+    {
+      if (((rfds && FD_ISSET (i, rfds))
+           || (wfds && FD_ISSET (i, wfds))
+           || (xfds && FD_ISSET (i, xfds)))
+          && dup2 (i, i) != i)
+        return -1;
+    }
+
+  /* Interix 3.5 has a bug: it does not support nfds == 0.  */
+  if (nfds == 0)
+    {
+      nfds = 1;
+      rfds = NULL;
+      wfds = NULL;
+      xfds = NULL;
+    }
+  return select (nfds, rfds, wfds, xfds, timeout);
+}
+
+#endif
index c729fa6..7d366ed 100644 (file)
@@ -1,5 +1,5 @@
-/* Set the current locale.
-   Copyright (C) 2009, 2011-2013 Free Software Foundation, Inc.
+/* Set the current locale.  -*- coding: utf-8 -*-
+   Copyright (C) 2009, 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -381,6 +381,7 @@ static const struct table_entry language_table[] =
     { "sq", "Albanian" },
     { "sr", "Serbian (Latin)" },
     { "sr@cyrillic", "SRB" }, /* Serbian (Cyrillic) */
+    { "sv", "Swedish" },
     { "sw", "Swahili" },
     { "syr", "Syriac" },
     { "ta", "Tamil" },
diff --git a/gnulib-tests/setsockopt.c b/gnulib-tests/setsockopt.c
new file mode 100644 (file)
index 0000000..af09f32
--- /dev/null
@@ -0,0 +1,65 @@
+/* setsockopt.c --- wrappers for Windows setsockopt function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get struct timeval. */
+#include <sys/time.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#undef setsockopt
+
+int
+rpl_setsockopt (int fd, int level, int optname, const void *optval, socklen_t optlen)
+{
+  SOCKET sock = FD_TO_SOCKET (fd);
+  int r;
+
+  if (sock == INVALID_SOCKET)
+    {
+      errno = EBADF;
+      return -1;
+    }
+  else
+    {
+      if (level == SOL_SOCKET
+          && (optname == SO_RCVTIMEO || optname == SO_SNDTIMEO))
+        {
+          const struct timeval *tv = optval;
+          int milliseconds = tv->tv_sec * 1000 + tv->tv_usec / 1000;
+          optval = &milliseconds;
+          r = setsockopt (sock, level, optname, optval, sizeof (int));
+        }
+      else
+        {
+          r = setsockopt (sock, level, optname, optval, optlen);
+        }
+
+      if (r < 0)
+        set_winsock_errno ();
+
+      return r;
+    }
+}
index 45a8e02..2df8067 100644 (file)
@@ -1,5 +1,5 @@
 /* Macro for checking that a function declaration is compliant.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4c97d7d..997285e 100644 (file)
@@ -1,5 +1,5 @@
 /* Pausing execution of the current thread.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
index 9c4ab3f..7cd89af 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2006-2016 Free Software Foundation, Inc.
    Written by Simon Josefsson and Paul Eggert.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/gnulib-tests/socket.c b/gnulib-tests/socket.c
new file mode 100644 (file)
index 0000000..4ccec4b
--- /dev/null
@@ -0,0 +1,49 @@
+/* socket.c --- wrappers for Windows socket function
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <config.h>
+
+#define WIN32_LEAN_AND_MEAN
+/* Get winsock2.h. */
+#include <sys/socket.h>
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+#include "w32sock.h"
+
+#include "sockets.h"
+
+int
+rpl_socket (int domain, int type, int protocol)
+{
+  SOCKET fh;
+
+  gl_sockets_startup (SOCKETS_1_1);
+
+  /* We have to use WSASocket() to create non-overlapped IO sockets.
+     Overlapped IO sockets cannot be used with read/write.  */
+  fh = WSASocket (domain, type, protocol, NULL, 0, 0);
+
+  if (fh == INVALID_SOCKET)
+    {
+      set_winsock_errno ();
+      return -1;
+    }
+  else
+    return SOCKET_TO_FD (fh);
+}
diff --git a/gnulib-tests/sockets.c b/gnulib-tests/sockets.c
new file mode 100644 (file)
index 0000000..abfab02
--- /dev/null
@@ -0,0 +1,157 @@
+/* sockets.c --- wrappers for Windows socket functions
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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 Simon Josefsson */
+
+#include <config.h>
+
+/* Specification.  */
+#include "sockets.h"
+
+#if WINDOWS_SOCKETS
+
+/* This includes winsock2.h on MinGW. */
+# include <sys/socket.h>
+
+# include "fd-hook.h"
+# include "msvc-nothrow.h"
+
+/* Get set_winsock_errno, FD_TO_SOCKET etc. */
+# include "w32sock.h"
+
+static int
+close_fd_maybe_socket (const struct fd_hook *remaining_list,
+                       gl_close_fn primary,
+                       int fd)
+{
+  /* Note about multithread-safety: There is a race condition where, between
+     our calls to closesocket() and the primary close(), some other thread
+     could make system calls that allocate precisely the same HANDLE value
+     as sock; then the primary close() would call CloseHandle() on it.  */
+  SOCKET sock;
+  WSANETWORKEVENTS ev;
+
+  /* Test whether fd refers to a socket.  */
+  sock = FD_TO_SOCKET (fd);
+  ev.lNetworkEvents = 0xDEADBEEF;
+  WSAEnumNetworkEvents (sock, NULL, &ev);
+  if (ev.lNetworkEvents != 0xDEADBEEF)
+    {
+      /* fd refers to a socket.  */
+      /* FIXME: other applications, like squid, use an undocumented
+         _free_osfhnd free function.  But this is not enough: The 'osfile'
+         flags for fd also needs to be cleared, but it is hard to access it.
+         Instead, here we just close twice the file descriptor.  */
+      if (closesocket (sock))
+        {
+          set_winsock_errno ();
+          return -1;
+        }
+      else
+        {
+          /* This call frees the file descriptor and does a
+             CloseHandle ((HANDLE) _get_osfhandle (fd)), which fails.  */
+          _close (fd);
+          return 0;
+        }
+    }
+  else
+    /* Some other type of file descriptor.  */
+    return execute_close_hooks (remaining_list, primary, fd);
+}
+
+static int
+ioctl_fd_maybe_socket (const struct fd_hook *remaining_list,
+                       gl_ioctl_fn primary,
+                       int fd, int request, void *arg)
+{
+  SOCKET sock;
+  WSANETWORKEVENTS ev;
+
+  /* Test whether fd refers to a socket.  */
+  sock = FD_TO_SOCKET (fd);
+  ev.lNetworkEvents = 0xDEADBEEF;
+  WSAEnumNetworkEvents (sock, NULL, &ev);
+  if (ev.lNetworkEvents != 0xDEADBEEF)
+    {
+      /* fd refers to a socket.  */
+      if (ioctlsocket (sock, request, arg) < 0)
+        {
+          set_winsock_errno ();
+          return -1;
+        }
+      else
+        return 0;
+    }
+  else
+    /* Some other type of file descriptor.  */
+    return execute_ioctl_hooks (remaining_list, primary, fd, request, arg);
+}
+
+static struct fd_hook fd_sockets_hook;
+
+static int initialized_sockets_version /* = 0 */;
+
+#endif /* WINDOWS_SOCKETS */
+
+int
+gl_sockets_startup (int version _GL_UNUSED)
+{
+#if WINDOWS_SOCKETS
+  if (version > initialized_sockets_version)
+    {
+      WSADATA data;
+      int err;
+
+      err = WSAStartup (version, &data);
+      if (err != 0)
+        return 1;
+
+      if (data.wVersion != version)
+        {
+          WSACleanup ();
+          return 2;
+        }
+
+      if (initialized_sockets_version == 0)
+        register_fd_hook (close_fd_maybe_socket, ioctl_fd_maybe_socket,
+                          &fd_sockets_hook);
+
+      initialized_sockets_version = version;
+    }
+#endif
+
+  return 0;
+}
+
+int
+gl_sockets_cleanup (void)
+{
+#if WINDOWS_SOCKETS
+  int err;
+
+  initialized_sockets_version = 0;
+
+  unregister_fd_hook (&fd_sockets_hook);
+
+  err = WSACleanup ();
+  if (err != 0)
+    return 1;
+#endif
+
+  return 0;
+}
diff --git a/gnulib-tests/sockets.h b/gnulib-tests/sockets.h
new file mode 100644 (file)
index 0000000..01a68d0
--- /dev/null
@@ -0,0 +1,62 @@
+/* sockets.h - wrappers for Windows socket functions
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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 Simon Josefsson */
+
+#ifndef SOCKETS_H
+# define SOCKETS_H 1
+
+#define SOCKETS_1_0 0x0001
+#define SOCKETS_1_1 0x0101
+#define SOCKETS_2_0 0x0002
+#define SOCKETS_2_1 0x0102
+#define SOCKETS_2_2 0x0202
+
+int gl_sockets_startup (int version)
+#if !WINDOWS_SOCKETS
+  _GL_ATTRIBUTE_CONST
+#endif
+  ;
+
+int gl_sockets_cleanup (void)
+#if !WINDOWS_SOCKETS
+  _GL_ATTRIBUTE_CONST
+#endif
+  ;
+
+/* This function is useful it you create a socket using gnulib's
+   Winsock wrappers but needs to pass on the socket handle to some
+   other library that only accepts sockets. */
+#if WINDOWS_SOCKETS
+
+#include <sys/socket.h>
+
+#include "msvc-nothrow.h"
+
+static inline SOCKET
+gl_fd_to_handle (int fd)
+{
+  return _get_osfhandle (fd);
+}
+
+#else
+
+#define gl_fd_to_handle(x) (x)
+
+#endif /* WINDOWS_SOCKETS */
+
+#endif /* SOCKETS_H */
diff --git a/gnulib-tests/stdalign.in.h b/gnulib-tests/stdalign.in.h
new file mode 100644 (file)
index 0000000..12f8a15
--- /dev/null
@@ -0,0 +1,121 @@
+/* A substitute for ISO C11 <stdalign.h>.
+
+   Copyright 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* 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 __alignof__ operator, which can yield a
+   better-performing alignment for an object of that type.  For
+   example, on x86 with GCC, __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
+   <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52023>.  */
+#if (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112 \
+     || (defined __GNUC__ && __GNUC__ < 4 + (__GNUC_MINOR__ < 9)))
+# 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 __APPLE__ && defined __MACH__                  \
+         ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__)                 \
+         : __GNUC__)                                            \
+        || 061200 <= __HP_cc || 061200 <= __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 */
diff --git a/gnulib-tests/strerror_r.c b/gnulib-tests/strerror_r.c
new file mode 100644 (file)
index 0000000..07a00cf
--- /dev/null
@@ -0,0 +1,338 @@
+/* strerror_r.c --- POSIX compatible system error routine
+
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
+
+#include <config.h>
+
+/* Enable declaration of sys_nerr and sys_errlist in <errno.h> on NetBSD.  */
+#define _NETBSD_SOURCE 1
+
+/* Specification.  */
+#include <string.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "strerror-override.h"
+
+#if (__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__) && HAVE___XPG_STRERROR_R /* glibc >= 2.3.4, cygwin >= 1.7.9 */
+
+# define USE_XPG_STRERROR_R 1
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int __xpg_strerror_r (int errnum, char *buf, size_t buflen);
+
+#elif HAVE_DECL_STRERROR_R && !(__GLIBC__ >= 2 || defined __UCLIBC__ || defined __CYGWIN__)
+
+/* The system's strerror_r function 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) */
+
+/* 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 __WIN32__) && !defined __CYGWIN__) || defined __sgi || (defined __sun && !defined _LP64) || defined __CYGWIN__
+
+/* No locking needed.  */
+
+/* Get catgets internationalization functions.  */
+#  if HAVE_CATGETS
+#   include <nl_types.h>
+#  endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Get sys_nerr, sys_errlist on HP-UX (otherwise only declared in C++ mode).
+   Get sys_nerr, sys_errlist on IRIX (otherwise only declared with _SGIAPI).  */
+#  if defined __hpux || defined __sgi
+extern int sys_nerr;
+extern char *sys_errlist[];
+#  endif
+
+/* Get sys_nerr on Solaris.  */
+#  if defined __sun && !defined _LP64
+extern int sys_nerr;
+#  endif
+
+#ifdef __cplusplus
+}
+#endif
+
+# else
+
+#  include "glthread/lock.h"
+
+/* This lock protects the buffer returned by strerror().  We assume that
+   no other uses of strerror() exist in the program.  */
+gl_lock_define_initialized(static, strerror_lock)
+
+# endif
+
+#endif
+
+/* On MSVC, there is no snprintf() function, just a _snprintf().
+   It is of lower quality, but sufficient for the simple use here.
+   We only have to make sure to NUL terminate the result (_snprintf
+   does not NUL terminate, like strncpy).  */
+#if !HAVE_SNPRINTF
+static int
+local_snprintf (char *buf, size_t buflen, const char *format, ...)
+{
+  va_list args;
+  int result;
+
+  va_start (args, format);
+  result = _vsnprintf (buf, buflen, format, args);
+  va_end (args);
+  if (buflen > 0 && (result < 0 || result >= buflen))
+    buf[buflen - 1] = '\0';
+  return result;
+}
+# define snprintf local_snprintf
+#endif
+
+/* Copy as much of MSG into BUF as possible, without corrupting errno.
+   Return 0 if MSG fit in BUFLEN, otherwise return ERANGE.  */
+static int
+safe_copy (char *buf, size_t buflen, const char *msg)
+{
+  size_t len = strlen (msg);
+  int ret;
+
+  if (len < buflen)
+    {
+      /* Although POSIX allows memcpy() to corrupt errno, we don't
+         know of any implementation where this is a real problem.  */
+      memcpy (buf, msg, len + 1);
+      ret = 0;
+    }
+  else
+    {
+      memcpy (buf, msg, buflen - 1);
+      buf[buflen - 1] = '\0';
+      ret = ERANGE;
+    }
+  return ret;
+}
+
+
+int
+strerror_r (int errnum, char *buf, size_t buflen)
+#undef strerror_r
+{
+  /* Filter this out now, so that rest of this replacement knows that
+     there is room for a non-empty message and trailing NUL.  */
+  if (buflen <= 1)
+    {
+      if (buflen)
+        *buf = '\0';
+      return ERANGE;
+    }
+  *buf = '\0';
+
+  /* Check for gnulib overrides.  */
+  {
+    char const *msg = strerror_override (errnum);
+
+    if (msg)
+      return safe_copy (buf, buflen, msg);
+  }
+
+  {
+    int ret;
+    int saved_errno = errno;
+
+#if USE_XPG_STRERROR_R
+
+    {
+      ret = __xpg_strerror_r (errnum, buf, buflen);
+      if (ret < 0)
+        ret = errno;
+      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));
+        }
+    }
+
+#elif USE_SYSTEM_STRERROR_R
+
+    if (buflen > INT_MAX)
+      buflen = INT_MAX;
+
+# ifdef __hpux
+    /* On HP-UX 11.31, strerror_r always fails when buflen < 80; it
+       also fails to change buf on EINVAL.  */
+    {
+      char stackbuf[80];
+
+      if (buflen < sizeof stackbuf)
+        {
+          ret = strerror_r (errnum, stackbuf, sizeof stackbuf);
+          if (ret == 0)
+            ret = safe_copy (buf, buflen, stackbuf);
+        }
+      else
+        ret = strerror_r (errnum, buf, buflen);
+    }
+# else
+    ret = strerror_r (errnum, buf, buflen);
+
+    /* Some old implementations may return (-1, EINVAL) instead of EINVAL.  */
+    if (ret < 0)
+      ret = errno;
+# endif
+
+# ifdef _AIX
+    /* AIX returns 0 rather than ERANGE when truncating strings; try
+       again until we are sure we got the entire string.  */
+    if (!ret && strlen (buf) == buflen - 1)
+      {
+        char stackbuf[STACKBUF_LEN];
+        size_t len;
+        strerror_r (errnum, stackbuf, sizeof stackbuf);
+        len = strlen (stackbuf);
+        /* STACKBUF_LEN should have been large enough.  */
+        if (len + 1 == sizeof stackbuf)
+          abort ();
+        if (buflen <= len)
+          ret = ERANGE;
+      }
+# else
+    /* Solaris 10 does not populate buf on ERANGE.  OpenBSD 4.7
+       truncates early on ERANGE rather than return a partial integer.
+       We prefer the maximal string.  We set buf[0] earlier, and we
+       know of no implementation that modifies buf to be an
+       unterminated string, so this strlen should be portable in
+       practice (rather than pulling in a safer strnlen).  */
+    if (ret == ERANGE && strlen (buf) < buflen - 1)
+      {
+        char stackbuf[STACKBUF_LEN];
+
+        /* STACKBUF_LEN should have been large enough.  */
+        if (strerror_r (errnum, stackbuf, sizeof stackbuf) == ERANGE)
+          abort ();
+        safe_copy (buf, buflen, stackbuf);
+      }
+# endif
+
+#else /* USE_SYSTEM_STRERROR */
+
+    /* Try to do what strerror (errnum) does, but without clobbering the
+       buffer used by strerror().  */
+
+# if defined __NetBSD__ || defined __hpux || ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __CYGWIN__ /* NetBSD, HP-UX, native Windows, Cygwin */
+
+    /* NetBSD:         sys_nerr, sys_errlist are declared through _NETBSD_SOURCE
+                       and <errno.h> above.
+       HP-UX:          sys_nerr, sys_errlist are declared explicitly above.
+       native Windows: sys_nerr, sys_errlist are declared in <stdlib.h>.
+       Cygwin:         sys_nerr, sys_errlist are declared in <errno.h>.  */
+    if (errnum >= 0 && errnum < sys_nerr)
+      {
+#  if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux)
+#   if defined __NetBSD__
+        nl_catd catd = catopen ("libc", NL_CAT_LOCALE);
+        const char *errmsg =
+          (catd != (nl_catd)-1
+           ? catgets (catd, 1, errnum, sys_errlist[errnum])
+           : sys_errlist[errnum]);
+#   endif
+#   if defined __hpux
+        nl_catd catd = catopen ("perror", NL_CAT_LOCALE);
+        const char *errmsg =
+          (catd != (nl_catd)-1
+           ? catgets (catd, 1, 1 + errnum, sys_errlist[errnum])
+           : sys_errlist[errnum]);
+#   endif
+#  else
+        const char *errmsg = sys_errlist[errnum];
+#  endif
+        if (errmsg == NULL || *errmsg == '\0')
+          ret = EINVAL;
+        else
+          ret = safe_copy (buf, buflen, errmsg);
+#  if HAVE_CATGETS && (defined __NetBSD__ || defined __hpux)
+        if (catd != (nl_catd)-1)
+          catclose (catd);
+#  endif
+      }
+    else
+      ret = EINVAL;
+
+# elif defined __sgi || (defined __sun && !defined _LP64) /* IRIX, Solaris <= 9 32-bit */
+
+    /* For a valid error number, the system's strerror() function returns
+       a pointer to a not copied string, not to a buffer.  */
+    if (errnum >= 0 && errnum < sys_nerr)
+      {
+        char *errmsg = strerror (errnum);
+
+        if (errmsg == NULL || *errmsg == '\0')
+          ret = EINVAL;
+        else
+          ret = safe_copy (buf, buflen, errmsg);
+      }
+    else
+      ret = EINVAL;
+
+# else
+
+    gl_lock_lock (strerror_lock);
+
+    {
+      char *errmsg = strerror (errnum);
+
+      /* For invalid error numbers, strerror() on
+           - IRIX 6.5 returns NULL,
+           - HP-UX 11 returns an empty string.  */
+      if (errmsg == NULL || *errmsg == '\0')
+        ret = EINVAL;
+      else
+        ret = safe_copy (buf, buflen, errmsg);
+    }
+
+    gl_lock_unlock (strerror_lock);
+
+# endif
+
+#endif
+
+    if (ret == EINVAL && !*buf)
+      snprintf (buf, buflen, "Unknown error %d", errnum);
+
+    errno = saved_errno;
+    return ret;
+  }
+}
index d3c9f21..d8684b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Stub for symlink().
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/sys_ioctl.in.h b/gnulib-tests/sys_ioctl.in.h
new file mode 100644 (file)
index 0000000..a07dc97
--- /dev/null
@@ -0,0 +1,78 @@
+/* Substitute for and wrapper around <sys/ioctl.h>.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard.  */
+#if @HAVE_SYS_IOCTL_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_IOCTL_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYS_IOCTL_H
+#define _@GUARD_PREFIX@_SYS_IOCTL_H
+
+/* AIX 5.1 and Solaris 10 declare ioctl() in <unistd.h> and in <stropts.h>,
+   but not in <sys/ioctl.h>.
+   But avoid namespace pollution on glibc systems.  */
+#ifndef __GLIBC__
+# include <unistd.h>
+#endif
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+
+/* Declare overridden functions.  */
+
+#if @GNULIB_IOCTL@
+# if @REPLACE_IOCTL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef ioctl
+#   define ioctl rpl_ioctl
+#  endif
+_GL_FUNCDECL_RPL (ioctl, int,
+                  (int fd, int request, ... /* {void *,char *} arg */));
+_GL_CXXALIAS_RPL (ioctl, int,
+                  (int fd, int request, ... /* {void *,char *} arg */));
+# else
+#  if @SYS_IOCTL_H_HAVE_WINSOCK2_H@ || 1
+_GL_FUNCDECL_SYS (ioctl, int,
+                  (int fd, int request, ... /* {void *,char *} arg */));
+#  endif
+_GL_CXXALIAS_SYS (ioctl, int,
+                  (int fd, int request, ... /* {void *,char *} arg */));
+# endif
+_GL_CXXALIASWARN (ioctl);
+#elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
+# undef ioctl
+# define ioctl ioctl_used_without_requesting_gnulib_module_ioctl
+#elif defined GNULIB_POSIXCHECK
+# undef ioctl
+# if HAVE_RAW_DECL_IOCTL
+_GL_WARN_ON_USE (ioctl, "ioctl does not portably work on sockets - "
+                 "use gnulib module ioctl for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */
+#endif /* _@GUARD_PREFIX@_SYS_IOCTL_H */
diff --git a/gnulib-tests/sys_select.in.h b/gnulib-tests/sys_select.in.h
new file mode 100644 (file)
index 0000000..9a2622f
--- /dev/null
@@ -0,0 +1,319 @@
+/* Substitute for <sys/select.h>.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+@PRAGMA_COLUMNS@
+
+/* 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>.
+   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             \
+     && ((defined __osf__ && defined _SYS_TYPES_H_                      \
+          && defined _OSF_SOURCE)                                       \
+         || (defined __sun && defined _SYS_TYPES_H                      \
+             && (! (defined _XOPEN_SOURCE || defined _POSIX_C_SOURCE)   \
+                 || defined __EXTENSIONS__))))
+
+# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TYPES_H
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
+#elif (@HAVE_SYS_SELECT_H@                                              \
+       && (defined _CYGWIN_SYS_TIME_H                                   \
+           || (!defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H       \
+               && ((defined __osf__ && defined _SYS_TIME_H_             \
+                    && defined _OSF_SOURCE)                             \
+                   || (defined __sun && defined _SYS_TIME_H             \
+                       && (! (defined _XOPEN_SOURCE                     \
+                              || defined _POSIX_C_SOURCE)               \
+                           || defined __EXTENSIONS__))))))
+
+# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_TIME_H
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
+/* On IRIX 6.5, <sys/timespec.h> includes <sys/types.h>, which includes
+   <sys/bsd_types.h>, which includes <sys/select.h>.  At this point we cannot
+   include <signal.h>, because that includes <internal/signal_core.h>, which
+   gives a syntax error because <sys/timespec.h> has not been completely
+   processed.  Simply delegate to the system's header in this case.  */
+#elif @HAVE_SYS_SELECT_H@ && defined __sgi && (defined _SYS_BSD_TYPES_H && !defined _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H)
+
+# define _GL_SYS_SELECT_H_REDIRECT_FROM_SYS_BSD_TYPES_H
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
+/* On OpenBSD 5.0, <pthread.h> includes <sys/types.h>, which includes
+   <sys/select.h>.  At this point we cannot include <signal.h>, because that
+   includes gnulib's pthread.h override, which gives a syntax error because
+   /usr/include/pthread.h has not been completely processed.  Simply delegate
+   to the system's header in this case.  */
+#elif @HAVE_SYS_SELECT_H@ && defined __OpenBSD__ && (defined _PTHREAD_H_ && !defined PTHREAD_MUTEX_INITIALIZER)
+
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
+#else
+
+#ifndef _@GUARD_PREFIX@_SYS_SELECT_H
+
+/* 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.  */
+#include <sys/types.h>
+
+#if @HAVE_SYS_SELECT_H@
+
+/* On OSF/1 4.0, <sys/select.h> provides only a forward declaration
+   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__)
+#  include <sys/time.h>
+# endif
+
+/* On AIX 7 and Solaris 10, <sys/select.h> provides an FD_ZERO implementation
+   that relies on memset(), but without including <string.h>.
+   But in any case avoid namespace pollution on glibc systems.  */
+# if (defined __OpenBSD__ || defined _AIX || defined __sun || defined __osf__ || defined __BEOS__) \
+     && ! defined __GLIBC__
+#  include <string.h>
+# endif
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_SYS_SELECT_H@
+
+#endif
+
+/* Get definition of 'sigset_t'.
+   But avoid namespace pollution on glibc systems and "unknown type
+   name" problems on Cygwin.
+   Do this after the include_next (for the sake of OpenBSD 5.0) but before
+   the split double-inclusion guard (for the sake of Solaris).  */
+#if !((defined __GLIBC__ || defined __CYGWIN__) && !defined __UCLIBC__)
+# include <signal.h>
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYS_SELECT_H
+#define _@GUARD_PREFIX@_SYS_SELECT_H
+
+#if !@HAVE_SYS_SELECT_H@
+/* A platform that lacks <sys/select.h>.  */
+/* Get the 'struct timeval' and 'fd_set' types and the FD_* macros
+   on most platforms.  */
+# include <sys/time.h>
+/* On HP-UX 11, <sys/time.h> provides an FD_ZERO implementation
+   that relies on memset(), but without including <string.h>.  */
+# if defined __hpux
+#  include <string.h>
+# endif
+/* On native Windows platforms:
+   Get the 'fd_set' type.
+   Get the close() declaration before we override it.  */
+# if @HAVE_WINSOCK2_H@
+#  if !defined _GL_INCLUDING_WINSOCK2_H
+#   define _GL_INCLUDING_WINSOCK2_H
+#   include <winsock2.h>
+#   undef _GL_INCLUDING_WINSOCK2_H
+#  endif
+#  include <io.h>
+# endif
+#endif
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+
+/* Fix some definitions from <winsock2.h>.  */
+
+#if @HAVE_WINSOCK2_H@
+
+# if !GNULIB_defined_rpl_fd_isset
+
+/* Re-define FD_ISSET to avoid a WSA call while we are not using
+   network sockets.  */
+static int
+rpl_fd_isset (SOCKET fd, fd_set * set)
+{
+  u_int i;
+  if (set == NULL)
+    return 0;
+
+  for (i = 0; i < set->fd_count; i++)
+    if (set->fd_array[i] == fd)
+      return 1;
+
+  return 0;
+}
+
+#  define GNULIB_defined_rpl_fd_isset 1
+# endif
+
+# undef FD_ISSET
+# define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
+
+#endif
+
+/* Hide some function declarations from <winsock2.h>.  */
+
+#if @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef close
+#   define close close_used_without_including_unistd_h
+#  else
+    _GL_WARN_ON_USE (close,
+                     "close() used without including <unistd.h>");
+#  endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef gethostname
+#   define gethostname gethostname_used_without_including_unistd_h
+#  else
+    _GL_WARN_ON_USE (gethostname,
+                     "gethostname() used without including <unistd.h>");
+#  endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef socket
+#   define socket              socket_used_without_including_sys_socket_h
+#   undef connect
+#   define connect             connect_used_without_including_sys_socket_h
+#   undef accept
+#   define accept              accept_used_without_including_sys_socket_h
+#   undef bind
+#   define bind                bind_used_without_including_sys_socket_h
+#   undef getpeername
+#   define getpeername         getpeername_used_without_including_sys_socket_h
+#   undef getsockname
+#   define getsockname         getsockname_used_without_including_sys_socket_h
+#   undef getsockopt
+#   define getsockopt          getsockopt_used_without_including_sys_socket_h
+#   undef listen
+#   define listen              listen_used_without_including_sys_socket_h
+#   undef recv
+#   define recv                recv_used_without_including_sys_socket_h
+#   undef send
+#   define send                send_used_without_including_sys_socket_h
+#   undef recvfrom
+#   define recvfrom            recvfrom_used_without_including_sys_socket_h
+#   undef sendto
+#   define sendto              sendto_used_without_including_sys_socket_h
+#   undef setsockopt
+#   define setsockopt          setsockopt_used_without_including_sys_socket_h
+#   undef shutdown
+#   define shutdown            shutdown_used_without_including_sys_socket_h
+#  else
+    _GL_WARN_ON_USE (socket,
+                     "socket() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (connect,
+                     "connect() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (accept,
+                     "accept() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (bind,
+                     "bind() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getpeername,
+                     "getpeername() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getsockname,
+                     "getsockname() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (getsockopt,
+                     "getsockopt() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (listen,
+                     "listen() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (recv,
+                     "recv() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (send,
+                     "send() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (recvfrom,
+                     "recvfrom() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (sendto,
+                     "sendto() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (setsockopt,
+                     "setsockopt() used without including <sys/socket.h>");
+    _GL_WARN_ON_USE (shutdown,
+                     "shutdown() used without including <sys/socket.h>");
+#  endif
+# endif
+#endif
+
+
+#if @GNULIB_PSELECT@
+# if @REPLACE_PSELECT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef pselect
+#   define pselect rpl_pselect
+#  endif
+_GL_FUNCDECL_RPL (pselect, int,
+                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                   struct timespec const *restrict, const sigset_t *restrict));
+_GL_CXXALIAS_RPL (pselect, int,
+                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                   struct timespec const *restrict, const sigset_t *restrict));
+# else
+#  if !@HAVE_PSELECT@
+_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));
+# endif
+_GL_CXXALIASWARN (pselect);
+#elif defined GNULIB_POSIXCHECK
+# undef pselect
+# if HAVE_RAW_DECL_PSELECT
+_GL_WARN_ON_USE (pselect, "pselect is not portable - "
+                 "use gnulib module pselect for portability");
+# endif
+#endif
+
+#if @GNULIB_SELECT@
+# if @REPLACE_SELECT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef select
+#   define select rpl_select
+#  endif
+_GL_FUNCDECL_RPL (select, int,
+                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                   struct timeval *restrict));
+_GL_CXXALIAS_RPL (select, int,
+                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                   struct timeval *restrict));
+# else
+_GL_CXXALIAS_SYS (select, int,
+                  (int, fd_set *restrict, fd_set *restrict, fd_set *restrict,
+                   struct timeval *restrict));
+# endif
+_GL_CXXALIASWARN (select);
+#elif @HAVE_WINSOCK2_H@
+# undef select
+# define select select_used_without_requesting_gnulib_module_select
+#elif defined GNULIB_POSIXCHECK
+# undef select
+# if HAVE_RAW_DECL_SELECT
+_GL_WARN_ON_USE (select, "select is not always POSIX compliant - "
+                 "use gnulib module select for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_SYS_SELECT_H */
+#endif /* _@GUARD_PREFIX@_SYS_SELECT_H */
+#endif /* OSF/1 */
diff --git a/gnulib-tests/sys_socket.c b/gnulib-tests/sys_socket.c
new file mode 100644 (file)
index 0000000..3b261da
--- /dev/null
@@ -0,0 +1,4 @@
+#include <config.h>
+#define _GL_SYS_SOCKET_INLINE _GL_EXTERN_INLINE
+#include "sys/socket.h"
+typedef int dummy;
diff --git a/gnulib-tests/sys_socket.in.h b/gnulib-tests/sys_socket.in.h
new file mode 100644 (file)
index 0000000..a627dd4
--- /dev/null
@@ -0,0 +1,692 @@
+/* Provide a sys/socket header file for systems lacking it (read: MinGW)
+   and for systems where it is incomplete.
+   Copyright (C) 2005-2016 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, 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/>.  */
+
+/* This file is supposed to be used on platforms that lack <sys/socket.h>,
+   on platforms where <sys/socket.h> cannot be included standalone, and on
+   platforms where <sys/socket.h> does not provide all necessary definitions.
+   It is intended to provide definitions and prototypes needed by an
+   application.  */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if defined _GL_ALREADY_INCLUDING_SYS_SOCKET_H
+/* Special invocation convention:
+   - On Cygwin 1.5.x we have a sequence of nested includes
+     <sys/socket.h> -> <cygwin/socket.h> -> <asm/socket.h> -> <cygwin/if.h>,
+     and the latter includes <sys/socket.h>.  In this situation, the functions
+     are not yet declared, therefore we cannot provide the C++ aliases.  */
+
+#@INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
+
+#if @HAVE_SYS_SOCKET_H@
+
+# define _GL_ALREADY_INCLUDING_SYS_SOCKET_H
+
+/* On many platforms, <sys/socket.h> assumes prior inclusion of
+   <sys/types.h>.  */
+# include <sys/types.h>
+
+/* On FreeBSD 6.4, <sys/socket.h> defines some macros that assume that NULL
+   is defined.  */
+# include <stddef.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_SYS_SOCKET_H@
+
+# undef _GL_ALREADY_INCLUDING_SYS_SOCKET_H
+
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYS_SOCKET_H
+#define _@GUARD_PREFIX@_SYS_SOCKET_H
+
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef _GL_SYS_SOCKET_INLINE
+# define _GL_SYS_SOCKET_INLINE _GL_INLINE
+#endif
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_ARG_NONNULL is copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+#if !@HAVE_SA_FAMILY_T@
+# if !GNULIB_defined_sa_family_t
+typedef unsigned short  sa_family_t;
+#  define GNULIB_defined_sa_family_t 1
+# endif
+#endif
+
+#if @HAVE_STRUCT_SOCKADDR_STORAGE@
+/* Make the 'struct sockaddr_storage' field 'ss_family' visible on AIX 7.1.  */
+# if !@HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
+#  ifndef ss_family
+#   define ss_family __ss_family
+#  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
+# define _SS_SIZE 256
+# define _SS_PADSIZE \
+    (_SS_SIZE - ((sizeof (sa_family_t) >= alignof (__ss_aligntype)      \
+                  ? sizeof (sa_family_t)                                \
+                  : alignof (__ss_aligntype))                           \
+                 + sizeof (__ss_aligntype)))
+
+# if !GNULIB_defined_struct_sockaddr_storage
+struct sockaddr_storage
+{
+  sa_family_t ss_family;      /* Address family, etc.  */
+  __ss_aligntype __ss_align;  /* Force desired alignment.  */
+  char __ss_padding[_SS_PADSIZE];
+};
+#  define GNULIB_defined_struct_sockaddr_storage 1
+# endif
+
+#endif
+
+/* Get struct iovec.  */
+/* But avoid namespace pollution on glibc systems.  */
+#if ! defined __GLIBC__
+# include <sys/uio.h>
+#endif
+
+#if @HAVE_SYS_SOCKET_H@
+
+/* A platform that has <sys/socket.h>.  */
+
+/* For shutdown().  */
+# if !defined SHUT_RD
+#  define SHUT_RD 0
+# endif
+# if !defined SHUT_WR
+#  define SHUT_WR 1
+# endif
+# if !defined SHUT_RDWR
+#  define SHUT_RDWR 2
+# endif
+
+#else
+
+# ifdef __CYGWIN__
+#  error "Cygwin does have a sys/socket.h, doesn't it?!?"
+# endif
+
+/* A platform that lacks <sys/socket.h>.
+
+   Currently only MinGW is supported.  See the gnulib manual regarding
+   Windows sockets.  MinGW has the header files winsock2.h and
+   ws2tcpip.h that declare the sys/socket.h definitions we need.  Note
+   that you can influence which definitions you get by setting the
+   WINVER symbol before including these two files.  For example,
+   getaddrinfo is only available if _WIN32_WINNT >= 0x0501 (that
+   symbol is set indirectly through WINVER).  You can set this by
+   adding AC_DEFINE(WINVER, 0x0501) to configure.ac.  Note that your
+   code may not run on older Windows releases then.  My Windows 2000
+   box was not able to run the code, for example.  The situation is
+   slightly confusing because
+   <http://msdn.microsoft.com/en-us/library/ms738520>
+   suggests that getaddrinfo should be available on all Windows
+   releases. */
+
+# if @HAVE_WINSOCK2_H@
+#  include <winsock2.h>
+# endif
+# if @HAVE_WS2TCPIP_H@
+#  include <ws2tcpip.h>
+# endif
+
+/* For shutdown(). */
+# if !defined SHUT_RD && defined SD_RECEIVE
+#  define SHUT_RD SD_RECEIVE
+# endif
+# if !defined SHUT_WR && defined SD_SEND
+#  define SHUT_WR SD_SEND
+# endif
+# if !defined SHUT_RDWR && defined SD_BOTH
+#  define SHUT_RDWR SD_BOTH
+# endif
+
+# if @HAVE_WINSOCK2_H@
+/* Include headers needed by the emulation code.  */
+#  include <sys/types.h>
+#  include <io.h>
+
+#  if !GNULIB_defined_socklen_t
+typedef int socklen_t;
+#   define GNULIB_defined_socklen_t 1
+#  endif
+
+# endif
+
+/* Rudimentary 'struct msghdr'; this works as long as you don't try to
+   access msg_control or msg_controllen.  */
+struct msghdr {
+  void *msg_name;
+  socklen_t msg_namelen;
+  struct iovec *msg_iov;
+  int msg_iovlen;
+  int msg_flags;
+};
+
+#endif
+
+/* Fix some definitions from <winsock2.h>.  */
+
+#if @HAVE_WINSOCK2_H@
+
+# if !GNULIB_defined_rpl_fd_isset
+
+/* Re-define FD_ISSET to avoid a WSA call while we are not using
+   network sockets.  */
+_GL_SYS_SOCKET_INLINE int
+rpl_fd_isset (SOCKET fd, fd_set * set)
+{
+  u_int i;
+  if (set == NULL)
+    return 0;
+
+  for (i = 0; i < set->fd_count; i++)
+    if (set->fd_array[i] == fd)
+      return 1;
+
+  return 0;
+}
+
+#  define GNULIB_defined_rpl_fd_isset 1
+# endif
+
+# undef FD_ISSET
+# define FD_ISSET(fd, set) rpl_fd_isset(fd, set)
+
+#endif
+
+/* Hide some function declarations from <winsock2.h>.  */
+
+#if @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef close
+#   define close close_used_without_including_unistd_h
+#  else
+    _GL_WARN_ON_USE (close,
+                     "close() used without including <unistd.h>");
+#  endif
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef gethostname
+#   define gethostname gethostname_used_without_including_unistd_h
+#  else
+    _GL_WARN_ON_USE (gethostname,
+                     "gethostname() used without including <unistd.h>");
+#  endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef select
+#   define select select_used_without_including_sys_select_h
+#  else
+    _GL_WARN_ON_USE (select,
+                     "select() used without including <sys/select.h>");
+#  endif
+# endif
+#endif
+
+/* Wrap everything else to use libc file descriptors for sockets.  */
+
+#if @GNULIB_SOCKET@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef socket
+#   define socket rpl_socket
+#  endif
+_GL_FUNCDECL_RPL (socket, int, (int domain, int type, int protocol));
+_GL_CXXALIAS_RPL (socket, int, (int domain, int type, int protocol));
+# else
+_GL_CXXALIAS_SYS (socket, int, (int domain, int type, int protocol));
+# endif
+_GL_CXXALIASWARN (socket);
+#elif @HAVE_WINSOCK2_H@
+# undef socket
+# define socket socket_used_without_requesting_gnulib_module_socket
+#elif defined GNULIB_POSIXCHECK
+# undef socket
+# if HAVE_RAW_DECL_SOCKET
+_GL_WARN_ON_USE (socket, "socket is not always POSIX compliant - "
+                 "use gnulib module socket for portability");
+# endif
+#endif
+
+#if @GNULIB_CONNECT@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef connect
+#   define connect rpl_connect
+#  endif
+_GL_FUNCDECL_RPL (connect, int,
+                  (int fd, const struct sockaddr *addr, socklen_t addrlen)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (connect, int,
+                  (int fd, const struct sockaddr *addr, socklen_t addrlen));
+# else
+/* Need to cast, because on NonStop Kernel, the third parameter is
+                                                     size_t addrlen.  */
+_GL_CXXALIAS_SYS_CAST (connect, int,
+                       (int fd,
+                        const struct sockaddr *addr, socklen_t addrlen));
+# endif
+_GL_CXXALIASWARN (connect);
+#elif @HAVE_WINSOCK2_H@
+# undef connect
+# define connect socket_used_without_requesting_gnulib_module_connect
+#elif defined GNULIB_POSIXCHECK
+# undef connect
+# if HAVE_RAW_DECL_CONNECT
+_GL_WARN_ON_USE (connect, "connect is not always POSIX compliant - "
+                 "use gnulib module connect for portability");
+# endif
+#endif
+
+#if @GNULIB_ACCEPT@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef accept
+#   define accept rpl_accept
+#  endif
+_GL_FUNCDECL_RPL (accept, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen));
+_GL_CXXALIAS_RPL (accept, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# else
+/* Need to cast, because on Solaris 10 systems, the third parameter is
+                                                       void *addrlen.  */
+_GL_CXXALIAS_SYS_CAST (accept, int,
+                       (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# endif
+_GL_CXXALIASWARN (accept);
+#elif @HAVE_WINSOCK2_H@
+# undef accept
+# define accept accept_used_without_requesting_gnulib_module_accept
+#elif defined GNULIB_POSIXCHECK
+# undef accept
+# if HAVE_RAW_DECL_ACCEPT
+_GL_WARN_ON_USE (accept, "accept is not always POSIX compliant - "
+                 "use gnulib module accept for portability");
+# endif
+#endif
+
+#if @GNULIB_BIND@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef bind
+#   define bind rpl_bind
+#  endif
+_GL_FUNCDECL_RPL (bind, int,
+                  (int fd, const struct sockaddr *addr, socklen_t addrlen)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (bind, int,
+                  (int fd, const struct sockaddr *addr, socklen_t addrlen));
+# else
+/* Need to cast, because on NonStop Kernel, the third parameter is
+                                                     size_t addrlen.  */
+_GL_CXXALIAS_SYS_CAST (bind, int,
+                       (int fd,
+                        const struct sockaddr *addr, socklen_t addrlen));
+# endif
+_GL_CXXALIASWARN (bind);
+#elif @HAVE_WINSOCK2_H@
+# undef bind
+# define bind bind_used_without_requesting_gnulib_module_bind
+#elif defined GNULIB_POSIXCHECK
+# undef bind
+# if HAVE_RAW_DECL_BIND
+_GL_WARN_ON_USE (bind, "bind is not always POSIX compliant - "
+                 "use gnulib module bind for portability");
+# endif
+#endif
+
+#if @GNULIB_GETPEERNAME@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getpeername
+#   define getpeername rpl_getpeername
+#  endif
+_GL_FUNCDECL_RPL (getpeername, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (getpeername, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# else
+/* Need to cast, because on Solaris 10 systems, the third parameter is
+                                                       void *addrlen.  */
+_GL_CXXALIAS_SYS_CAST (getpeername, int,
+                       (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# endif
+_GL_CXXALIASWARN (getpeername);
+#elif @HAVE_WINSOCK2_H@
+# undef getpeername
+# define getpeername getpeername_used_without_requesting_gnulib_module_getpeername
+#elif defined GNULIB_POSIXCHECK
+# undef getpeername
+# if HAVE_RAW_DECL_GETPEERNAME
+_GL_WARN_ON_USE (getpeername, "getpeername is not always POSIX compliant - "
+                 "use gnulib module getpeername for portability");
+# endif
+#endif
+
+#if @GNULIB_GETSOCKNAME@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getsockname
+#   define getsockname rpl_getsockname
+#  endif
+_GL_FUNCDECL_RPL (getsockname, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (getsockname, int,
+                  (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# else
+/* Need to cast, because on Solaris 10 systems, the third parameter is
+                                                       void *addrlen.  */
+_GL_CXXALIAS_SYS_CAST (getsockname, int,
+                       (int fd, struct sockaddr *addr, socklen_t *addrlen));
+# endif
+_GL_CXXALIASWARN (getsockname);
+#elif @HAVE_WINSOCK2_H@
+# undef getsockname
+# define getsockname getsockname_used_without_requesting_gnulib_module_getsockname
+#elif defined GNULIB_POSIXCHECK
+# undef getsockname
+# if HAVE_RAW_DECL_GETSOCKNAME
+_GL_WARN_ON_USE (getsockname, "getsockname is not always POSIX compliant - "
+                 "use gnulib module getsockname for portability");
+# endif
+#endif
+
+#if @GNULIB_GETSOCKOPT@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getsockopt
+#   define getsockopt rpl_getsockopt
+#  endif
+_GL_FUNCDECL_RPL (getsockopt, int, (int fd, int level, int optname,
+                                    void *optval, socklen_t *optlen)
+                                   _GL_ARG_NONNULL ((4, 5)));
+_GL_CXXALIAS_RPL (getsockopt, int, (int fd, int level, int optname,
+                                    void *optval, socklen_t *optlen));
+# else
+/* Need to cast, because on Solaris 10 systems, the fifth parameter is
+                                                       void *optlen.  */
+_GL_CXXALIAS_SYS_CAST (getsockopt, int, (int fd, int level, int optname,
+                                         void *optval, socklen_t *optlen));
+# endif
+_GL_CXXALIASWARN (getsockopt);
+#elif @HAVE_WINSOCK2_H@
+# undef getsockopt
+# define getsockopt getsockopt_used_without_requesting_gnulib_module_getsockopt
+#elif defined GNULIB_POSIXCHECK
+# undef getsockopt
+# if HAVE_RAW_DECL_GETSOCKOPT
+_GL_WARN_ON_USE (getsockopt, "getsockopt is not always POSIX compliant - "
+                 "use gnulib module getsockopt for portability");
+# endif
+#endif
+
+#if @GNULIB_LISTEN@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef listen
+#   define listen rpl_listen
+#  endif
+_GL_FUNCDECL_RPL (listen, int, (int fd, int backlog));
+_GL_CXXALIAS_RPL (listen, int, (int fd, int backlog));
+# else
+_GL_CXXALIAS_SYS (listen, int, (int fd, int backlog));
+# endif
+_GL_CXXALIASWARN (listen);
+#elif @HAVE_WINSOCK2_H@
+# undef listen
+# define listen listen_used_without_requesting_gnulib_module_listen
+#elif defined GNULIB_POSIXCHECK
+# undef listen
+# if HAVE_RAW_DECL_LISTEN
+_GL_WARN_ON_USE (listen, "listen is not always POSIX compliant - "
+                 "use gnulib module listen for portability");
+# endif
+#endif
+
+#if @GNULIB_RECV@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef recv
+#   define recv rpl_recv
+#  endif
+_GL_FUNCDECL_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags)
+                                 _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (recv, ssize_t, (int fd, void *buf, size_t len, int flags));
+# else
+_GL_CXXALIAS_SYS (recv, ssize_t, (int fd, void *buf, size_t len, int flags));
+# endif
+_GL_CXXALIASWARN (recv);
+#elif @HAVE_WINSOCK2_H@
+# undef recv
+# define recv recv_used_without_requesting_gnulib_module_recv
+#elif defined GNULIB_POSIXCHECK
+# undef recv
+# if HAVE_RAW_DECL_RECV
+_GL_WARN_ON_USE (recv, "recv is not always POSIX compliant - "
+                 "use gnulib module recv for portability");
+# endif
+#endif
+
+#if @GNULIB_SEND@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef send
+#   define send rpl_send
+#  endif
+_GL_FUNCDECL_RPL (send, ssize_t,
+                  (int fd, const void *buf, size_t len, int flags)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (send, ssize_t,
+                  (int fd, const void *buf, size_t len, int flags));
+# else
+_GL_CXXALIAS_SYS (send, ssize_t,
+                  (int fd, const void *buf, size_t len, int flags));
+# endif
+_GL_CXXALIASWARN (send);
+#elif @HAVE_WINSOCK2_H@
+# undef send
+# define send send_used_without_requesting_gnulib_module_send
+#elif defined GNULIB_POSIXCHECK
+# undef send
+# if HAVE_RAW_DECL_SEND
+_GL_WARN_ON_USE (send, "send is not always POSIX compliant - "
+                 "use gnulib module send for portability");
+# endif
+#endif
+
+#if @GNULIB_RECVFROM@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef recvfrom
+#   define recvfrom rpl_recvfrom
+#  endif
+_GL_FUNCDECL_RPL (recvfrom, ssize_t,
+                  (int fd, void *buf, size_t len, int flags,
+                   struct sockaddr *from, socklen_t *fromlen)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (recvfrom, ssize_t,
+                  (int fd, void *buf, size_t len, int flags,
+                   struct sockaddr *from, socklen_t *fromlen));
+# else
+/* Need to cast, because on Solaris 10 systems, the sixth parameter is
+                                               void *fromlen.  */
+_GL_CXXALIAS_SYS_CAST (recvfrom, ssize_t,
+                       (int fd, void *buf, size_t len, int flags,
+                        struct sockaddr *from, socklen_t *fromlen));
+# endif
+_GL_CXXALIASWARN (recvfrom);
+#elif @HAVE_WINSOCK2_H@
+# undef recvfrom
+# define recvfrom recvfrom_used_without_requesting_gnulib_module_recvfrom
+#elif defined GNULIB_POSIXCHECK
+# undef recvfrom
+# if HAVE_RAW_DECL_RECVFROM
+_GL_WARN_ON_USE (recvfrom, "recvfrom is not always POSIX compliant - "
+                 "use gnulib module recvfrom for portability");
+# endif
+#endif
+
+#if @GNULIB_SENDTO@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef sendto
+#   define sendto rpl_sendto
+#  endif
+_GL_FUNCDECL_RPL (sendto, ssize_t,
+                  (int fd, const void *buf, size_t len, int flags,
+                   const struct sockaddr *to, socklen_t tolen)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (sendto, ssize_t,
+                  (int fd, const void *buf, size_t len, int flags,
+                   const struct sockaddr *to, socklen_t tolen));
+# else
+/* Need to cast, because on NonStop Kernel, the sixth parameter is
+                                                   size_t tolen.  */
+_GL_CXXALIAS_SYS_CAST (sendto, ssize_t,
+                       (int fd, const void *buf, size_t len, int flags,
+                        const struct sockaddr *to, socklen_t tolen));
+# endif
+_GL_CXXALIASWARN (sendto);
+#elif @HAVE_WINSOCK2_H@
+# undef sendto
+# define sendto sendto_used_without_requesting_gnulib_module_sendto
+#elif defined GNULIB_POSIXCHECK
+# undef sendto
+# if HAVE_RAW_DECL_SENDTO
+_GL_WARN_ON_USE (sendto, "sendto is not always POSIX compliant - "
+                 "use gnulib module sendto for portability");
+# endif
+#endif
+
+#if @GNULIB_SETSOCKOPT@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef setsockopt
+#   define setsockopt rpl_setsockopt
+#  endif
+_GL_FUNCDECL_RPL (setsockopt, int, (int fd, int level, int optname,
+                                    const void * optval, socklen_t optlen)
+                                   _GL_ARG_NONNULL ((4)));
+_GL_CXXALIAS_RPL (setsockopt, int, (int fd, int level, int optname,
+                                    const void * optval, socklen_t optlen));
+# else
+/* Need to cast, because on NonStop Kernel, the fifth parameter is
+                                             size_t optlen.  */
+_GL_CXXALIAS_SYS_CAST (setsockopt, int,
+                       (int fd, int level, int optname,
+                        const void * optval, socklen_t optlen));
+# endif
+_GL_CXXALIASWARN (setsockopt);
+#elif @HAVE_WINSOCK2_H@
+# undef setsockopt
+# define setsockopt setsockopt_used_without_requesting_gnulib_module_setsockopt
+#elif defined GNULIB_POSIXCHECK
+# undef setsockopt
+# if HAVE_RAW_DECL_SETSOCKOPT
+_GL_WARN_ON_USE (setsockopt, "setsockopt is not always POSIX compliant - "
+                 "use gnulib module setsockopt for portability");
+# endif
+#endif
+
+#if @GNULIB_SHUTDOWN@
+# if @HAVE_WINSOCK2_H@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef shutdown
+#   define shutdown rpl_shutdown
+#  endif
+_GL_FUNCDECL_RPL (shutdown, int, (int fd, int how));
+_GL_CXXALIAS_RPL (shutdown, int, (int fd, int how));
+# else
+_GL_CXXALIAS_SYS (shutdown, int, (int fd, int how));
+# endif
+_GL_CXXALIASWARN (shutdown);
+#elif @HAVE_WINSOCK2_H@
+# undef shutdown
+# define shutdown shutdown_used_without_requesting_gnulib_module_shutdown
+#elif defined GNULIB_POSIXCHECK
+# undef shutdown
+# if HAVE_RAW_DECL_SHUTDOWN
+_GL_WARN_ON_USE (shutdown, "shutdown is not always POSIX compliant - "
+                 "use gnulib module shutdown for portability");
+# endif
+#endif
+
+#if @GNULIB_ACCEPT4@
+/* Accept a connection on a socket, with specific opening flags.
+   The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
+   and O_TEXT, O_BINARY (defined in "binary-io.h").
+   See also the Linux man page at
+   <http://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html>.  */
+# if @HAVE_ACCEPT4@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define accept4 rpl_accept4
+#  endif
+_GL_FUNCDECL_RPL (accept4, int,
+                  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
+                   int flags));
+_GL_CXXALIAS_RPL (accept4, int,
+                  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
+                   int flags));
+# else
+_GL_FUNCDECL_SYS (accept4, int,
+                  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
+                   int flags));
+_GL_CXXALIAS_SYS (accept4, int,
+                  (int sockfd, struct sockaddr *addr, socklen_t *addrlen,
+                   int flags));
+# endif
+_GL_CXXALIASWARN (accept4);
+#elif defined GNULIB_POSIXCHECK
+# undef accept4
+# if HAVE_RAW_DECL_ACCEPT4
+_GL_WARN_ON_USE (accept4, "accept4 is unportable - "
+                 "use gnulib module accept4 for portability");
+# endif
+#endif
+
+_GL_INLINE_HEADER_END
+
+#endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
+#endif /* _@GUARD_PREFIX@_SYS_SOCKET_H */
+#endif
diff --git a/gnulib-tests/sys_uio.in.h b/gnulib-tests/sys_uio.in.h
new file mode 100644 (file)
index 0000000..e70663f
--- /dev/null
@@ -0,0 +1,63 @@
+/* Substitute for <sys/uio.h>.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+# if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+# endif
+@PRAGMA_COLUMNS@
+
+#ifndef _@GUARD_PREFIX@_SYS_UIO_H
+
+#if @HAVE_SYS_UIO_H@
+
+/* On OpenBSD 4.4, <sys/uio.h> assumes prior inclusion of <sys/types.h>.  */
+# include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard.  */
+# @INCLUDE_NEXT@ @NEXT_SYS_UIO_H@
+
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYS_UIO_H
+#define _@GUARD_PREFIX@_SYS_UIO_H
+
+#if !@HAVE_SYS_UIO_H@
+/* A platform that lacks <sys/uio.h>.  */
+/* Get 'size_t' and 'ssize_t'.  */
+# include <sys/types.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if !GNULIB_defined_struct_iovec
+/* All known platforms that lack <sys/uio.h> also lack any declaration
+   of struct iovec in any other header.  */
+struct iovec {
+  void *iov_base;
+  size_t iov_len;
+};
+#  define GNULIB_defined_struct_iovec 1
+# endif
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
+
+#endif /* _@GUARD_PREFIX@_SYS_UIO_H */
+#endif /* _@GUARD_PREFIX@_SYS_UIO_H */
diff --git a/gnulib-tests/test-accept.c b/gnulib-tests/test-accept.c
new file mode 100644 (file)
index 0000000..9d510a6
--- /dev/null
@@ -0,0 +1,56 @@
+/* Test accepting a connection to a server socket.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (accept, int, (int, struct sockaddr *, socklen_t *));
+
+#include <errno.h>
+#include <netinet/in.h>
+#include <unistd.h>
+
+#include "sockets.h"
+#include "macros.h"
+
+int
+main (void)
+{
+  (void) gl_sockets_startup (SOCKETS_1_1);
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    struct sockaddr_in addr;
+    socklen_t addrlen = sizeof (addr);
+
+    errno = 0;
+    ASSERT (accept (-1, (struct sockaddr *) &addr, &addrlen) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    struct sockaddr_in addr;
+    socklen_t addrlen = sizeof (addr);
+
+    close (99);
+    errno = 0;
+    ASSERT (accept (99, (struct sockaddr *) &addr, &addrlen) == -1);
+    ASSERT (errno == EBADF);
+  }
+
+  return 0;
+}
index d94e1d1..b9aaa4a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of optional automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2357680..738a498 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of areadlink.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ccc7187..3251ca2 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of areadlink and friends.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9e24dc1..9a3a4a9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of exact or abbreviated match search.
-   Copyright (C) 1990, 1998-1999, 2001-2013 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1998-1999, 2001-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
similarity index 76%
rename from gnulib-tests/test-malloc-gnu.c
rename to gnulib-tests/test-arpa_inet.c
index ca0eafa..5fc6cdd 100644 (file)
@@ -1,5 +1,5 @@
-/* Test of malloc function.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+/* Test of <arpa/inet.h> substitute.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This 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/>.  */
 
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
 #include <config.h>
 
-#include <stdlib.h>
+#include <arpa/inet.h>
 
 int
-main ()
+main (void)
 {
-  /* Check that malloc (0) is not a NULL pointer.  */
-  if (malloc (0) == NULL)
-    return 1;
-
   return 0;
 }
index b258d51..6801e96 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of binary mode I/O.
-   Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-bind.c b/gnulib-tests/test-bind.c
new file mode 100644 (file)
index 0000000..4885519
--- /dev/null
@@ -0,0 +1,58 @@
+/* Test binding a server socket to a port.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (bind, int, (int, const struct sockaddr *, socklen_t));
+
+#include <errno.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+
+#include "sockets.h"
+#include "macros.h"
+
+int
+main (void)
+{
+  (void) gl_sockets_startup (SOCKETS_1_1);
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    struct sockaddr_in addr;
+
+    addr.sin_family = AF_INET;
+    inet_pton (AF_INET, "127.0.0.1", &addr.sin_addr);
+    addr.sin_port = htons (80);
+    {
+      errno = 0;
+      ASSERT (bind (-1, (const struct sockaddr *) &addr, sizeof (addr)) == -1);
+      ASSERT (errno == EBADF);
+    }
+    {
+      close (99);
+      errno = 0;
+      ASSERT (bind (99, (const struct sockaddr *) &addr, sizeof (addr)) == -1);
+      ASSERT (errno == EBADF);
+    }
+  }
+
+  return 0;
+}
index 380f08d..f3df469 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <bitrotate.h> substitute.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7779469..9953ac4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of unibyte character to wide character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c0aa662..184cdec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character handling in C locale.
-   Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007-2016 Free Software Foundation, Inc.
 
    This 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 "c-ctype.h"
 
+#include <ctype.h>
+#include <limits.h>
 #include <locale.h>
 
 #include "macros.h"
 
 static void
-test_all (void)
+test_agree_with_C_locale (void)
 {
   int c;
 
-  for (c = -0x80; c < 0x100; c++)
+  for (c = 0; c <= UCHAR_MAX; c++)
     {
-      ASSERT (c_isascii (c) == (c >= 0 && c < 0x80));
-
-      switch (c)
+      ASSERT (c_isascii (c) == (isascii (c) != 0));
+      if (c_isascii (c))
         {
-        case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-        case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-        case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-        case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-        case 'Y': case 'Z':
-        case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-        case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-        case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-        case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-        case 'y': case 'z':
-        case '0': case '1': case '2': case '3': case '4': case '5':
-        case '6': case '7': case '8': case '9':
-          ASSERT (c_isalnum (c) == 1);
-          break;
-        default:
-          ASSERT (c_isalnum (c) == 0);
-          break;
+          ASSERT (c_isalnum (c) == (isalnum (c) != 0));
+          ASSERT (c_isalpha (c) == (isalpha (c) != 0));
+          ASSERT (c_isblank (c) == (isblank (c) != 0));
+          ASSERT (c_iscntrl (c) == (iscntrl (c) != 0));
+          ASSERT (c_isdigit (c) == (isdigit (c) != 0));
+          ASSERT (c_islower (c) == (islower (c) != 0));
+          ASSERT (c_isgraph (c) == (isgraph (c) != 0));
+          ASSERT (c_isprint (c) == (isprint (c) != 0));
+          ASSERT (c_ispunct (c) == (ispunct (c) != 0));
+          ASSERT (c_isspace (c) == (isspace (c) != 0));
+          ASSERT (c_isupper (c) == (isupper (c) != 0));
+          ASSERT (c_isxdigit (c) == (isxdigit (c) != 0));
+          ASSERT (c_tolower (c) == tolower (c));
+          ASSERT (c_toupper (c) == toupper (c));
         }
+    }
+}
 
-      switch (c)
+static void
+test_all (void)
+{
+  int c;
+  int n_isascii = 0;
+
+  for (c = CHAR_MIN; c <= UCHAR_MAX; c++)
+    {
+      if (! (0 <= c && c <= CHAR_MAX))
         {
-        case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-        case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-        case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-        case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-        case 'Y': case 'Z':
-        case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-        case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-        case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-        case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-        case 'y': case 'z':
-          ASSERT (c_isalpha (c) == 1);
-          break;
-        default:
-          ASSERT (c_isalpha (c) == 0);
-          break;
+          ASSERT (! c_isascii (c));
+          ASSERT (! c_isalnum (c));
+          ASSERT (! c_isalpha (c));
+          ASSERT (! c_isblank (c));
+          ASSERT (! c_iscntrl (c));
+          ASSERT (! c_isdigit (c));
+          ASSERT (! c_islower (c));
+          ASSERT (! c_isgraph (c));
+          ASSERT (! c_isprint (c));
+          ASSERT (! c_ispunct (c));
+          ASSERT (! c_isspace (c));
+          ASSERT (! c_isupper (c));
+          ASSERT (! c_isxdigit (c));
+          ASSERT (c_tolower (c) == c);
+          ASSERT (c_toupper (c) == c);
         }
 
+      n_isascii += c_isascii (c);
+
+#ifdef C_CTYPE_ASCII
+      ASSERT (c_isascii (c) == (0 <= c && c <= 0x7f));
+#endif
+
+      ASSERT (c_isascii (c) == (c_isprint (c) || c_iscntrl (c)));
+
+      ASSERT (c_isalnum (c) == (c_isalpha (c) || c_isdigit (c)));
+
+      ASSERT (c_isalpha (c) == (c_islower (c) || c_isupper (c)));
+
       switch (c)
         {
         case '\t': case ' ':
@@ -83,7 +103,19 @@ test_all (void)
           break;
         }
 
+#ifdef C_CTYPE_ASCII
       ASSERT (c_iscntrl (c) == ((c >= 0 && c < 0x20) || c == 0x7f));
+#endif
+
+      switch (c)
+        {
+        case '\a': case '\b': case '\f': case '\n':
+        case '\r': case '\t': case '\v':
+          ASSERT (c_iscntrl (c));
+          break;
+        }
+
+      ASSERT (! (c_iscntrl (c) && c_isprint (c)));
 
       switch (c)
         {
@@ -104,17 +136,37 @@ test_all (void)
         case 's': case 't': case 'u': case 'v': case 'w': case 'x':
         case 'y': case 'z':
           ASSERT (c_islower (c) == 1);
+          ASSERT (c_toupper (c) == c - 'a' + 'A');
           break;
         default:
           ASSERT (c_islower (c) == 0);
+          ASSERT (c_toupper (c) == c);
           break;
         }
 
+#ifdef C_CTYPE_ASCII
       ASSERT (c_isgraph (c) == ((c >= 0x20 && c < 0x7f) && c != ' '));
 
       ASSERT (c_isprint (c) == (c >= 0x20 && c < 0x7f));
+#endif
+
+      ASSERT (c_isgraph (c) == (c_isalnum (c) || c_ispunct (c)));
+
+      ASSERT (c_isprint (c) == (c_isgraph (c) || c == ' '));
 
-      ASSERT (c_ispunct (c) == (c_isgraph (c) && !c_isalnum (c)));
+      switch (c)
+        {
+        case '!': case '"': case '#': case '$': case '%': case '&': case '\'':
+        case '(': case ')': case '*': case '+': case ',': case '-': case '.':
+        case '/': case ':': case ';': case '<': case '=': case '>': case '?':
+        case '@': case '[': case'\\': case ']': case '^': case '_': case '`':
+        case '{': case '|': case '}': case '~':
+          ASSERT (c_ispunct (c) == 1);
+          break;
+        default:
+          ASSERT (c_ispunct (c) == 0);
+          break;
+        }
 
       switch (c)
         {
@@ -134,9 +186,11 @@ test_all (void)
         case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
         case 'Y': case 'Z':
           ASSERT (c_isupper (c) == 1);
+          ASSERT (c_tolower (c) == c - 'A' + 'a');
           break;
         default:
           ASSERT (c_isupper (c) == 0);
+          ASSERT (c_tolower (c) == c);
           break;
         }
 
@@ -152,228 +206,16 @@ test_all (void)
           ASSERT (c_isxdigit (c) == 0);
           break;
         }
-
-      switch (c)
-        {
-        case 'A':
-          ASSERT (c_tolower (c) == 'a');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'B':
-          ASSERT (c_tolower (c) == 'b');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'C':
-          ASSERT (c_tolower (c) == 'c');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'D':
-          ASSERT (c_tolower (c) == 'd');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'E':
-          ASSERT (c_tolower (c) == 'e');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'F':
-          ASSERT (c_tolower (c) == 'f');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'G':
-          ASSERT (c_tolower (c) == 'g');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'H':
-          ASSERT (c_tolower (c) == 'h');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'I':
-          ASSERT (c_tolower (c) == 'i');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'J':
-          ASSERT (c_tolower (c) == 'j');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'K':
-          ASSERT (c_tolower (c) == 'k');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'L':
-          ASSERT (c_tolower (c) == 'l');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'M':
-          ASSERT (c_tolower (c) == 'm');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'N':
-          ASSERT (c_tolower (c) == 'n');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'O':
-          ASSERT (c_tolower (c) == 'o');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'P':
-          ASSERT (c_tolower (c) == 'p');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'Q':
-          ASSERT (c_tolower (c) == 'q');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'R':
-          ASSERT (c_tolower (c) == 'r');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'S':
-          ASSERT (c_tolower (c) == 's');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'T':
-          ASSERT (c_tolower (c) == 't');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'U':
-          ASSERT (c_tolower (c) == 'u');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'V':
-          ASSERT (c_tolower (c) == 'v');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'W':
-          ASSERT (c_tolower (c) == 'w');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'X':
-          ASSERT (c_tolower (c) == 'x');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'Y':
-          ASSERT (c_tolower (c) == 'y');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'Z':
-          ASSERT (c_tolower (c) == 'z');
-          ASSERT (c_toupper (c) == c);
-          break;
-        case 'a':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'A');
-          break;
-        case 'b':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'B');
-          break;
-        case 'c':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'C');
-          break;
-        case 'd':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'D');
-          break;
-        case 'e':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'E');
-          break;
-        case 'f':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'F');
-          break;
-        case 'g':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'G');
-          break;
-        case 'h':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'H');
-          break;
-        case 'i':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'I');
-          break;
-        case 'j':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'J');
-          break;
-        case 'k':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'K');
-          break;
-        case 'l':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'L');
-          break;
-        case 'm':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'M');
-          break;
-        case 'n':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'N');
-          break;
-        case 'o':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'O');
-          break;
-        case 'p':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'P');
-          break;
-        case 'q':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'Q');
-          break;
-        case 'r':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'R');
-          break;
-        case 's':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'S');
-          break;
-        case 't':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'T');
-          break;
-        case 'u':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'U');
-          break;
-        case 'v':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'V');
-          break;
-        case 'w':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'W');
-          break;
-        case 'x':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'X');
-          break;
-        case 'y':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'Y');
-          break;
-        case 'z':
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == 'Z');
-          break;
-        default:
-          ASSERT (c_tolower (c) == c);
-          ASSERT (c_toupper (c) == c);
-          break;
-        }
     }
+
+  ASSERT (n_isascii == 128);
 }
 
 int
 main ()
 {
+  test_agree_with_C_locale ();
+
   test_all ();
 
   setlocale (LC_ALL, "de_DE");
index 24fccf3..073f1c6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of c-stack module.
-   Copyright (C) 2002, 2004, 2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 26d9ca4..37f9431 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 075f15e..1ca42d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 974ed1b..a0428e0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test closing a file or socket.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-connect.c b/gnulib-tests/test-connect.c
new file mode 100644 (file)
index 0000000..efe419e
--- /dev/null
@@ -0,0 +1,60 @@
+/* Test connecting a client socket.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (connect, int, (int, const struct sockaddr *, socklen_t));
+
+#include <errno.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+
+#include "sockets.h"
+#include "macros.h"
+
+int
+main (void)
+{
+  (void) gl_sockets_startup (SOCKETS_1_1);
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    struct sockaddr_in addr;
+
+    addr.sin_family = AF_INET;
+    inet_pton (AF_INET, "127.0.0.1", &addr.sin_addr);
+    addr.sin_port = htons (80);
+    {
+      errno = 0;
+      ASSERT (connect (-1, (const struct sockaddr *) &addr, sizeof (addr))
+              == -1);
+      ASSERT (errno == EBADF);
+    }
+    {
+      close (99);
+      errno = 0;
+      ASSERT (connect (99, (const struct sockaddr *) &addr, sizeof (addr))
+              == -1);
+      ASSERT (errno == EBADF);
+    }
+  }
+
+  return 0;
+}
similarity index 68%
rename from gnulib-tests/test-usleep.c
rename to gnulib-tests/test-ctype.c
index 097c172..570fbdb 100644 (file)
@@ -1,5 +1,5 @@
-/* Test of usleep() function.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+/* Test of <ctype.h> substitute.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 #include <config.h>
 
-#include <unistd.h>
-
-#include "signature.h"
-SIGNATURE_CHECK (usleep, int, (useconds_t));
-
-#include <time.h>
-
-#include "macros.h"
+#include <ctype.h>
 
 int
 main (void)
 {
-  time_t start = time (NULL);
-  ASSERT (usleep (1000000) == 0);
-  ASSERT (start < time (NULL));
-
-  ASSERT (usleep (0) == 0);
-
   return 0;
 }
index a017bce..b9b876a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test the gnulib dirname module.
-   Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -150,7 +150,7 @@ main (void)
         {
           ok = false;
           printf ("dir_name '%s': got '%s' len %d,"
-                  " expected '%s' len %ld\n",
+                  " expected '%s' len %lu\n",
                   t->name, dir, dirlen,
                   t->dir, (unsigned long) strlen (t->dir));
         }
@@ -167,7 +167,7 @@ main (void)
         {
           ok = false;
           printf ("base_name '%s': got '%s' len %d,"
-                  " expected '%s' len %ld\n",
+                  " expected '%s' len %lu\n",
                   t->name, base, baselen,
                   t->base, (unsigned long) strlen (t->base));
         }
index 9600c85..5da6812 100644 (file)
@@ -1,5 +1,5 @@
 /* Test duplicating file descriptors.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This 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,6 +26,10 @@ SIGNATURE_CHECK (dup2, int, (int, int));
 #include <errno.h>
 #include <fcntl.h>
 
+#if HAVE_SYS_RESOURCE_H
+# include <sys/resource.h>
+#endif
+
 #include "binary-io.h"
 
 #if GNULIB_TEST_CLOEXEC
@@ -103,6 +107,7 @@ main (void)
 {
   const char *file = "test-dup2.tmp";
   char buffer[1];
+  int bad_fd = getdtablesize ();
   int fd = open (file, O_CREAT | O_TRUNC | O_RDWR, 0600);
 
   /* Assume std descriptors were provided by invoker.  */
@@ -145,8 +150,17 @@ main (void)
   errno = 0;
   ASSERT (dup2 (fd, -2) == -1);
   ASSERT (errno == EBADF);
+  if (bad_fd > 256)
+    {
+      ASSERT (dup2 (fd, 255) == 255);
+      ASSERT (dup2 (fd, 256) == 256);
+      ASSERT (close (255) == 0);
+      ASSERT (close (256) == 0);
+    }
+  ASSERT (dup2 (fd, bad_fd - 1) == bad_fd - 1);
+  ASSERT (close (bad_fd - 1) == 0);
   errno = 0;
-  ASSERT (dup2 (fd, 10000000) == -1);
+  ASSERT (dup2 (fd, bad_fd) == -1);
   ASSERT (errno == EBADF);
 
   /* Using dup2 can skip fds.  */
index cb3d9f6..0047246 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of environ variable.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 29eb510..1e0bb6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <errno.h> substitute.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index bad2837..9b20ba5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test suite for exclude.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
index df62699..6f6252e 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index bc35be8..c488109 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 497c58f..c2376cc 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index f450dbb..4c22db4 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 1dac96b..ba53a43 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index c0b1cba..53368dc 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index cb1e0cb..4a92ff5 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 9cbdbac..91644ea 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for exclude.
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index e30ff19..aef1661 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <fcntl.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -111,7 +111,7 @@ main (void)
 #if O_RSYNC && O_RSYNC != O_DSYNC
     case O_RSYNC:
 #endif
-#if O_SYNC && O_SYNC != O_RSYNC
+#if O_SYNC && O_SYNC != O_DSYNC && O_SYNC != O_RSYNC
     case O_SYNC:
 #endif
 #if O_TTY_INIT
index 67d1b41..974ee33 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fcntl(2).
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -211,6 +211,7 @@ main (void)
 {
   const char *file = "test-fcntl.tmp";
   int fd;
+  int bad_fd = getdtablesize ();
 
   /* Sanity check that rpl_fcntl is likely to work.  */
   ASSERT (func2 (1, 2) == 2);
@@ -237,7 +238,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_DUPFD, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_DUPFD, 0) == -1);
+  ASSERT (fcntl (bad_fd, F_DUPFD, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
   ASSERT (fcntl (-1, F_DUPFD_CLOEXEC, 0) == -1);
@@ -246,23 +247,21 @@ main (void)
   ASSERT (fcntl (fd + 1, F_DUPFD_CLOEXEC, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_DUPFD_CLOEXEC, 0) == -1);
+  ASSERT (fcntl (bad_fd, F_DUPFD_CLOEXEC, 0) == -1);
   ASSERT (errno == EBADF);
 
   /* For F_DUPFD*, the destination must be valid.  */
-  ASSERT (getdtablesize () < 10000000);
   errno = 0;
   ASSERT (fcntl (fd, F_DUPFD, -1) == -1);
   ASSERT (errno == EINVAL);
   errno = 0;
-  ASSERT (fcntl (fd, F_DUPFD, 10000000) == -1);
+  ASSERT (fcntl (fd, F_DUPFD, bad_fd) == -1);
   ASSERT (errno == EINVAL);
-  ASSERT (getdtablesize () < 10000000);
   errno = 0;
   ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, -1) == -1);
   ASSERT (errno == EINVAL);
   errno = 0;
-  ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, 10000000) == -1);
+  ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, bad_fd) == -1);
   ASSERT (errno == EINVAL);
 
   /* For F_DUPFD*, check for correct inheritance, as well as
@@ -322,7 +321,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_GETFD) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_GETFD) == -1);
+  ASSERT (fcntl (bad_fd, F_GETFD) == -1);
   ASSERT (errno == EBADF);
 
   /* Test F_GETFD, the FD_CLOEXEC bit.  */
@@ -346,7 +345,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_SETFD, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_SETFD, 0) == -1);
+  ASSERT (fcntl (bad_fd, F_SETFD, 0) == -1);
   ASSERT (errno == EBADF);
 #endif
 
@@ -359,7 +358,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_GETFL) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_GETFL) == -1);
+  ASSERT (fcntl (bad_fd, F_GETFL) == -1);
   ASSERT (errno == EBADF);
 #endif
 
@@ -372,7 +371,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_SETFL, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_SETFL, 0) == -1);
+  ASSERT (fcntl (bad_fd, F_SETFL, 0) == -1);
   ASSERT (errno == EBADF);
 #endif
 
@@ -385,7 +384,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_GETOWN) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_GETOWN) == -1);
+  ASSERT (fcntl (bad_fd, F_GETOWN) == -1);
   ASSERT (errno == EBADF);
 #endif
 
@@ -398,7 +397,7 @@ main (void)
   ASSERT (fcntl (fd + 1, F_SETOWN, 0) == -1);
   ASSERT (errno == EBADF);
   errno = 0;
-  ASSERT (fcntl (10000000, F_SETOWN, 0) == -1);
+  ASSERT (fcntl (bad_fd, F_SETOWN, 0) == -1);
   ASSERT (errno == EBADF);
 #endif
 
index 671c5e3..55b49a6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test opening a stream with a file descriptor.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,28 +29,21 @@ SIGNATURE_CHECK (fdopen, FILE *, (int, const char *));
 int
 main (void)
 {
-  /* Test behaviour for invalid file descriptors.  */
-  {
-    FILE *fp;
-
-    errno = 0;
-    fp = fdopen (-1, "r");
-    if (fp == NULL)
-      ASSERT (errno == EBADF);
-    else
-      fclose (fp);
-  }
-  {
-    FILE *fp;
-
-    close (99);
-    errno = 0;
-    fp = fdopen (99, "r");
-    if (fp == NULL)
-      ASSERT (errno == EBADF);
-    else
-      fclose (fp);
-  }
+  /* Test behavior on failure.  POSIX makes it hard to check for
+     failure, since the behavior is not well-defined on invalid file
+     descriptors, so try fdopen 1000 times and if that's not enough to
+     fail due to EMFILE, so be it.  */
+
+  int i;
+  for (i = 0; i < 1000; i++)
+    {
+      errno = 0;
+      if (! fdopen (STDOUT_FILENO, "w"))
+        {
+          ASSERT (errno != 0);
+          break;
+        }
+    }
 
   return 0;
 }
index b4a617a..c62e70c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fgetc() function.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2d29cd4..79f752f 100644 (file)
@@ -1,6 +1,6 @@
 /* Test of concatenation of two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7d3142f..a5f33b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <float.h> substitute.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 71304a4..c110409 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fnmatch string matching function.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e05f641..95a1cb6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fputc() function.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a807e0a..b9fc72a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fread() function.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5d658f7..980f19b 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of reopening a stream.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4b54d8d..80453bf 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of opening a file stream.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8ce1527..c9ac749 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of fstat() function.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-ftruncate.c b/gnulib-tests/test-ftruncate.c
new file mode 100644 (file)
index 0000000..09f175e
--- /dev/null
@@ -0,0 +1,60 @@
+/* Test truncating a file.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (ftruncate, int, (int, off_t));
+
+#include <errno.h>
+#include <fcntl.h>
+
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+  const char *filename = argv[1];
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    errno = 0;
+    ASSERT (ftruncate (-1, 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    close (99);
+    errno = 0;
+    ASSERT (ftruncate (99, 0) == -1);
+    ASSERT (errno == EBADF);
+  }
+
+  /* Test behaviour for read-only file descriptors.  */
+  {
+    int fd = open (filename, O_RDONLY);
+    ASSERT (fd >= 0);
+    errno = 0;
+    ASSERT (ftruncate (fd, 0) == -1);
+    ASSERT (errno == EBADF || errno == EINVAL
+            || errno == EACCES /* seen on mingw */
+           );
+    close (fd);
+  }
+
+  return 0;
+}
diff --git a/gnulib-tests/test-ftruncate.sh b/gnulib-tests/test-ftruncate.sh
new file mode 100755 (executable)
index 0000000..d7394d2
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec ./test-ftruncate${EXEEXT} "$srcdir/test-ftruncate.sh"
index ef72338..bc285f3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of fwrite() function.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e3e7b7a..6bea7b7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of getcwd() function.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7046481..54efa04 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of getdtablesize() function.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,6 +29,8 @@ int
 main (int argc, char *argv[])
 {
   ASSERT (getdtablesize () >= 3);
+  ASSERT (dup2 (0, getdtablesize() - 1) == getdtablesize () - 1);
+  ASSERT (dup2 (0, getdtablesize()) == -1);
 
   return 0;
 }
index 7caf027..505cb2a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 450cf0d..8e61eb2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 345a796..0f83f47 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of command line argument processing.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2c60876..7a44d71 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
  * Written by Jim Meyering.
  *
  * This program is free software: you can redistribute it and/or modify
index 57c094c..7bb53f0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2009-2016 Free Software Foundation, Inc.
  * Written by Jim Meyering
  *
  * This program is free software: you can redistribute it and/or modify
index 7132b33..fbb0548 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <iconv.h> substitute.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a39ca58..3e4c4ff 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cb4cf14..7c4b2de 100644 (file)
@@ -1,6 +1,6 @@
 /* Test the "ignore-value" module.
 
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-inet_pton.c b/gnulib-tests/test-inet_pton.c
new file mode 100644 (file)
index 0000000..3d12556
--- /dev/null
@@ -0,0 +1,58 @@
+/* Test of inet_pton function.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009.  */
+
+#include <config.h>
+
+#include <arpa/inet.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (inet_pton, int, (int, const char *, void *));
+
+#include <netinet/in.h>
+#include <sys/socket.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+#if defined AF_INET /* HAVE_IPV4 */
+  {
+    /* This machine was for a long time known as
+       ma2s2.mathematik.uni-karlsruhe.de.  */
+    const char printable[] = "129.13.115.2";
+    struct in_addr internal;
+    int ret;
+
+    ret = inet_pton (AF_INET, printable, &internal);
+    ASSERT (ret == 1);
+    /* Verify that internal is filled in network byte order.  */
+    ASSERT (((unsigned char *) &internal)[0] == 0x81);
+    ASSERT (((unsigned char *) &internal)[1] == 0x0D);
+    ASSERT (((unsigned char *) &internal)[2] == 0x73);
+    ASSERT (((unsigned char *) &internal)[3] == 0x02);
+# ifdef WORDS_BIGENDIAN
+    ASSERT (internal.s_addr == 0x810D7302);
+# else
+    ASSERT (internal.s_addr == 0x02730D81);
+# endif
+  }
+#endif
+
+  return 0;
+}
index 6eb6b43..1dd05f4 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for init.sh
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 8b91a79..0a8ddcd 100644 (file)
@@ -1,5 +1,5 @@
 /* Test intprops.h.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* Written by Paul Eggert.  */
 
-/* Tell gcc not to warn about the many (X < 0) expressions that
-   the overflow macros expand to.  */
-#if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
+/* Tell gcc not to warn about the long expressions that the overflow
+   macros expand to, or about the (X < 0) expressions.  */
+#if 4 < __GNUC__ + (3 <= __GNUC_MINOR__)
+# pragma GCC diagnostic ignored "-Woverlength-strings"
 # pragma GCC diagnostic ignored "-Wtype-limits"
+
+/* Work around a bug in GCC 6.1 and earlier; see:
+   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68971  */
+# pragma GCC diagnostic ignored "-Woverflow"
+
 #endif
 
 #include <config.h>
@@ -29,6 +35,7 @@
 
 #include <stdbool.h>
 #include <inttypes.h>
+#include <limits.h>
 
 #include "macros.h"
 
@@ -43,6 +50,8 @@
 # define VERIFY(x) ASSERT (x)
 #endif
 
+#define DONTCARE __LINE__
+
 int
 main (void)
 {
@@ -82,12 +91,8 @@ main (void)
   ASSERT (TYPE_SIGNED (double));
   ASSERT (TYPE_SIGNED (long double));
 
-  /* Integer representation.  */
-  VERIFY (INT_MIN + INT_MAX < 0
-          ? (TYPE_TWOS_COMPLEMENT (int)
-             && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int))
-          : (! TYPE_TWOS_COMPLEMENT (int)
-             && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int))));
+  /* Integer representation.  Check that it is two's complement.  */
+  VERIFY (INT_MIN + INT_MAX < 0);
 
   /* TYPE_MINIMUM, TYPE_MAXIMUM.  */
   VERIFY (TYPE_MINIMUM (char) == CHAR_MIN);
@@ -128,148 +133,238 @@ main (void)
   #endif
 
   /* All the INT_<op>_RANGE_OVERFLOW tests are equally valid as
-     INT_<op>_OVERFLOW tests, so define a single macro to do both.  */
-  #define CHECK_BINOP(op, a, b, min, max, overflow)                      \
-    (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow)            \
-     && INT_##op##_OVERFLOW (a, b) == (overflow))
-  #define CHECK_UNOP(op, a, min, max, overflow)                          \
-    (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow)               \
-     && INT_##op##_OVERFLOW (a) == (overflow))
+     INT_<op>_OVERFLOW tests, so define macros to do both.  OP is the
+     operation, OPNAME its symbolic name, A and B its operands, T the
+     result type, V the overflow flag, and VRES the result if V and if
+     two's complement.  CHECK_BINOP is for most binary operatinos,
+     CHECK_SBINOP for binary +, -, * when the result type is signed,
+     and CHECK_UNOP for unary operations.  */
+  #define CHECK_BINOP(op, opname, a, b, t, v, vres)                       \
+    VERIFY (INT_##opname##_RANGE_OVERFLOW (a, b, TYPE_MINIMUM (t),        \
+                                           TYPE_MAXIMUM (t))              \
+            == (v));                                                      \
+    VERIFY (INT_##opname##_OVERFLOW (a, b) == (v))
+  #define CHECK_SBINOP(op, opname, a, b, t, v, vres)                      \
+    CHECK_BINOP(op, opname, a, b, t, v, vres);                            \
+    {                                                                     \
+      t result;                                                           \
+      ASSERT (INT_##opname##_WRAPV (a, b, &result) == (v));               \
+      ASSERT (result == ((v) ? (vres) : ((a) op (b))));                   \
+    }
+  #define CHECK_UNOP(op, opname, a, t, v)                                 \
+    VERIFY (INT_##opname##_RANGE_OVERFLOW (a, TYPE_MINIMUM (t),           \
+                                           TYPE_MAXIMUM (t))              \
+            == (v));                                                      \
+    VERIFY (INT_##opname##_OVERFLOW (a) == (v))
 
   /* INT_<op>_RANGE_OVERFLOW, INT_<op>_OVERFLOW.  */
   VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX));
   VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1));
-  VERIFY (CHECK_BINOP (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true));
-  VERIFY (CHECK_BINOP (ADD, 0u, 1u, 0u, UINT_MAX, false));
-
-  VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false));
-  VERIFY (CHECK_BINOP (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true));
-
-  VERIFY (CHECK_UNOP (NEGATE, INT_MIN, INT_MIN, INT_MAX,
-                      TYPE_TWOS_COMPLEMENT (int)));
-  VERIFY (CHECK_UNOP (NEGATE, 0, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_UNOP (NEGATE, INT_MAX, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_UNOP (NEGATE, 0u, 0u, UINT_MAX, false));
-  VERIFY (CHECK_UNOP (NEGATE, 1u, 0u, UINT_MAX, true));
-  VERIFY (CHECK_UNOP (NEGATE, UINT_MAX, 0u, UINT_MAX, true));
-
-  VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true));
-  VERIFY (CHECK_BINOP (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX,
-                       INT_NEGATE_OVERFLOW (INT_MIN)));
-  VERIFY (CHECK_BINOP (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX,
-                       LONG_MIN, LONG_MIN, false));
-
-  VERIFY (CHECK_BINOP (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX,
-                       INT_NEGATE_OVERFLOW (INT_MIN)));
-  VERIFY (CHECK_BINOP (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (DIVIDE, (unsigned int) INT_MIN,
-                       -1u, 0u, UINT_MAX, false));
-
-  VERIFY (CHECK_BINOP (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX,
-                       INT_NEGATE_OVERFLOW (INT_MIN)));
-  VERIFY (CHECK_BINOP (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false));
-  VERIFY (CHECK_BINOP (REMAINDER, (unsigned int) INT_MIN,
-                       -1u, 0u, UINT_MAX, false));
-
-  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true));
-  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true));
-  VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false));
-
-  /* INT_<op>_OVERFLOW with mixed types.  */
-  #define CHECK_SUM(a, b, overflow)                       \
-    VERIFY (INT_ADD_OVERFLOW (a, b) == (overflow));       \
-    VERIFY (INT_ADD_OVERFLOW (b, a) == (overflow))
-  CHECK_SUM (-1, LONG_MIN, true);
-  CHECK_SUM (-1, UINT_MAX, false);
-  CHECK_SUM (-1L, INT_MIN, INT_MIN == LONG_MIN);
-  CHECK_SUM (0u, -1, true);
-  CHECK_SUM (0u, 0, false);
-  CHECK_SUM (0u, 1, false);
-  CHECK_SUM (1, LONG_MAX, true);
-  CHECK_SUM (1, UINT_MAX, true);
-  CHECK_SUM (1L, INT_MAX, INT_MAX == LONG_MAX);
-  CHECK_SUM (1u, INT_MAX, INT_MAX == UINT_MAX);
-  CHECK_SUM (1u, INT_MIN, true);
-
-  VERIFY (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u));
-  VERIFY (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1));
-  VERIFY (! INT_SUBTRACT_OVERFLOW (0u, -1));
-  VERIFY (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1));
-  VERIFY (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u));
-  VERIFY (INT_SUBTRACT_OVERFLOW (-1, 0u));
-
-  #define CHECK_PRODUCT(a, b, overflow)                   \
-    VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (overflow));   \
-    VERIFY (INT_MULTIPLY_OVERFLOW (b, a) == (overflow))
-
-  CHECK_PRODUCT (-1, 1u, true);
-  CHECK_PRODUCT (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN));
-  CHECK_PRODUCT (-1, UINT_MAX, true);
-  CHECK_PRODUCT (-12345, LONG_MAX / -12345 - 1, true);
-  CHECK_PRODUCT (-12345, LONG_MAX / -12345, false);
-  CHECK_PRODUCT (0, -1, false);
-  CHECK_PRODUCT (0, 0, false);
-  CHECK_PRODUCT (0, 0u, false);
-  CHECK_PRODUCT (0, 1, false);
-  CHECK_PRODUCT (0, INT_MAX, false);
-  CHECK_PRODUCT (0, INT_MIN, false);
-  CHECK_PRODUCT (0, UINT_MAX, false);
-  CHECK_PRODUCT (0u, -1, false);
-  CHECK_PRODUCT (0u, 0, false);
-  CHECK_PRODUCT (0u, 0u, false);
-  CHECK_PRODUCT (0u, 1, false);
-  CHECK_PRODUCT (0u, INT_MAX, false);
-  CHECK_PRODUCT (0u, INT_MIN, false);
-  CHECK_PRODUCT (0u, UINT_MAX, false);
-  CHECK_PRODUCT (1, INT_MAX, false);
-  CHECK_PRODUCT (1, INT_MIN, false);
-  CHECK_PRODUCT (1, UINT_MAX, false);
-  CHECK_PRODUCT (1u, INT_MIN, true);
-  CHECK_PRODUCT (1u, INT_MAX, UINT_MAX < INT_MAX);
-  CHECK_PRODUCT (INT_MAX, UINT_MAX, true);
-  CHECK_PRODUCT (INT_MAX, ULONG_MAX, true);
-  CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, true);
-  CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN, false);
-  CHECK_PRODUCT (INT_MIN, UINT_MAX, true);
-  CHECK_PRODUCT (INT_MIN, ULONG_MAX, true);
-
-  VERIFY (INT_DIVIDE_OVERFLOW (INT_MIN, -1L)
-          == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
-  VERIFY (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX));
-  VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX));
-  VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX));
-  VERIFY (INT_DIVIDE_OVERFLOW (-11, 10u));
-  VERIFY (INT_DIVIDE_OVERFLOW (-10, 10u));
-  VERIFY (! INT_DIVIDE_OVERFLOW (-9, 10u));
-  VERIFY (INT_DIVIDE_OVERFLOW (11u, -10));
-  VERIFY (INT_DIVIDE_OVERFLOW (10u, -10));
-  VERIFY (! INT_DIVIDE_OVERFLOW (9u, -10));
-
-  VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, -1L)
-          == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN));
-  VERIFY (INT_REMAINDER_OVERFLOW (-1, UINT_MAX));
-  VERIFY (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX));
-  VERIFY (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX)
-          == (INTMAX_MAX < UINT_MAX
-              && - (unsigned int) INTMAX_MIN % UINT_MAX != 0));
-  VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX)
-          == (INT_MIN % ULONG_MAX != 1));
-  VERIFY (! INT_REMAINDER_OVERFLOW (1u, -1));
-  VERIFY (! INT_REMAINDER_OVERFLOW (37*39u, -39));
-  VERIFY (INT_REMAINDER_OVERFLOW (37*39u + 1, -39));
-  VERIFY (INT_REMAINDER_OVERFLOW (37*39u - 1, -39));
-  VERIFY (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX));
+
+  CHECK_SBINOP (+, ADD, INT_MAX, 1, int, true, INT_MIN);
+  CHECK_SBINOP (+, ADD, INT_MAX, -1, int, false, INT_MAX - 1);
+  CHECK_SBINOP (+, ADD, INT_MIN, 1, int, false, INT_MIN + 1);
+  CHECK_SBINOP (+, ADD, INT_MIN, -1, int, true, INT_MAX);
+  CHECK_BINOP (+, ADD, UINT_MAX, 1u, unsigned int, true, 0u);
+  CHECK_BINOP (+, ADD, 0u, 1u, unsigned int, false, 1u);
+
+  CHECK_SBINOP (-, SUBTRACT, INT_MAX, 1, int, false, INT_MAX - 1);
+  CHECK_SBINOP (-, SUBTRACT, INT_MAX, -1, int, true, INT_MIN);
+  CHECK_SBINOP (-, SUBTRACT, INT_MIN, 1, int, true, INT_MAX);
+  CHECK_SBINOP (-, SUBTRACT, INT_MIN, -1, int, false, INT_MIN - -1);
+  CHECK_BINOP (-, SUBTRACT, UINT_MAX, 1u, unsigned int, false, UINT_MAX - 1u);
+  CHECK_BINOP (-, SUBTRACT, 0u, 1u, unsigned int, true, 0u - 1u);
+
+  CHECK_UNOP (-, NEGATE, INT_MIN, int, true);
+  CHECK_UNOP (-, NEGATE, 0, int, false);
+  CHECK_UNOP (-, NEGATE, INT_MAX, int, false);
+  CHECK_UNOP (-, NEGATE, 0u, unsigned int, false);
+  CHECK_UNOP (-, NEGATE, 1u, unsigned int, true);
+  CHECK_UNOP (-, NEGATE, UINT_MAX, unsigned int, true);
+
+  CHECK_SBINOP (*, MULTIPLY, INT_MAX, INT_MAX, int, true, 1);
+  CHECK_SBINOP (*, MULTIPLY, INT_MAX, INT_MIN, int, true, INT_MIN);
+  CHECK_SBINOP (*, MULTIPLY, INT_MIN, INT_MAX, int, true, INT_MIN);
+  CHECK_SBINOP (*, MULTIPLY, INT_MIN, INT_MIN, int, true, 0);
+  CHECK_SBINOP (*, MULTIPLY, -1, INT_MIN, int,
+                INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN);
+  CHECK_SBINOP (*, MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX,
+                long int, false, LONG_MIN - LONG_MIN % INT_MAX);
+
+  CHECK_BINOP (/, DIVIDE, INT_MIN, -1, int,
+               INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN);
+  CHECK_BINOP (/, DIVIDE, INT_MAX, 1, int, false, INT_MAX);
+  CHECK_BINOP (/, DIVIDE, (unsigned int) INT_MIN, -1u, unsigned int,
+               false, INT_MIN / -1u);
+
+  CHECK_BINOP (%, REMAINDER, INT_MIN, -1, int, INT_NEGATE_OVERFLOW (INT_MIN), 0);
+  CHECK_BINOP (%, REMAINDER, INT_MAX, 1, int, false, 0);
+  CHECK_BINOP (%, REMAINDER, (unsigned int) INT_MIN, -1u, unsigned int,
+               false, INT_MIN % -1u);
+
+  CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX, 1, unsigned int, true, UINT_MAX << 1);
+  CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX / 2 + 1, 1, unsigned int, true,
+               (UINT_MAX / 2 + 1) << 1);
+  CHECK_BINOP (<<, LEFT_SHIFT, UINT_MAX / 2, 1, unsigned int, false,
+               (UINT_MAX / 2) << 1);
+
+  /* INT_<op>_OVERFLOW and INT_<op>_WRAPV with mixed types.  */
+  #define CHECK_SUM(a, b, t, v, vres)                                     \
+    CHECK_SUM1(a, b, t, v, vres);                                         \
+    CHECK_SUM1(b, a, t, v, vres)
+  #define CHECK_SSUM(a, b, t, v, vres)                                    \
+    CHECK_SSUM1(a, b, t, v, vres);                                        \
+    CHECK_SSUM1(b, a, t, v, vres)
+  #define CHECK_SUM1(a, b, t, v, vres)                                    \
+    VERIFY (INT_ADD_OVERFLOW (a, b) == (v))
+  #define CHECK_SSUM1(a, b, t, v, vres)                                   \
+    CHECK_SUM1(a, b, t, v, vres);                                         \
+    {                                                                     \
+      t result;                                                           \
+      ASSERT (INT_ADD_WRAPV (a, b, &result) == (v));                      \
+      ASSERT (result == ((v) ? (vres) : ((a) + (b))));                    \
+    }
+  CHECK_SSUM (-1, LONG_MIN, long int, true, LONG_MAX);
+  CHECK_SUM (-1, UINT_MAX, unsigned int, false, DONTCARE);
+  CHECK_SSUM (-1L, INT_MIN, long int, INT_MIN == LONG_MIN,
+              INT_MIN == LONG_MIN ? INT_MAX : DONTCARE);
+  CHECK_SUM (0u, -1, unsigned int, true, 0u + -1);
+  CHECK_SUM (0u, 0, unsigned int, false, DONTCARE);
+  CHECK_SUM (0u, 1, unsigned int, false, DONTCARE);
+  CHECK_SSUM (1, LONG_MAX, long int, true, LONG_MIN);
+  CHECK_SUM (1, UINT_MAX, unsigned int, true, 0u);
+  CHECK_SSUM (1L, INT_MAX, long int, INT_MAX == LONG_MAX,
+              INT_MAX == LONG_MAX ? INT_MIN : DONTCARE);
+  CHECK_SUM (1u, INT_MAX, unsigned int, INT_MAX == UINT_MAX, 1u + INT_MAX);
+  CHECK_SUM (1u, INT_MIN, unsigned int, true, 1u + INT_MIN);
+  {
+    long int result;
+    ASSERT (INT_ADD_WRAPV (1, INT_MAX, &result) == (INT_MAX == LONG_MAX));
+    ASSERT (INT_ADD_WRAPV (-1, INT_MIN, &result) == (INT_MIN == LONG_MIN));
+  }
+
+  #define CHECK_DIFFERENCE(a, b, t, v, vres)                              \
+    VERIFY (INT_SUBTRACT_OVERFLOW (a, b) == (v))
+  #define CHECK_SDIFFERENCE(a, b, t, v, vres)                             \
+    CHECK_DIFFERENCE(a, b, t, v, vres);                                   \
+    {                                                                     \
+      t result;                                                           \
+      ASSERT (INT_SUBTRACT_WRAPV (a, b, &result) == (v));                 \
+      ASSERT (result == ((v) ? (vres) : ((a) - (b))));                    \
+    }
+  CHECK_DIFFERENCE (INT_MAX, 1u, unsigned int, UINT_MAX < INT_MAX - 1,
+                    INT_MAX - 1u);
+  CHECK_DIFFERENCE (UINT_MAX, 1, unsigned int, false, UINT_MAX - 1);
+  CHECK_DIFFERENCE (0u, -1, unsigned int, false, 0u - -1);
+  CHECK_DIFFERENCE (UINT_MAX, -1, unsigned int, true, UINT_MAX - -1);
+  CHECK_DIFFERENCE (INT_MIN, 1u, unsigned int, true, INT_MIN - 1u);
+  CHECK_DIFFERENCE (-1, 0u, unsigned int, true, -1 - 0u);
+  CHECK_SDIFFERENCE (-1, INT_MIN, int, false, -1 - INT_MIN);
+  CHECK_SDIFFERENCE (-1, INT_MAX, int, false, -1 - INT_MAX);
+  CHECK_SDIFFERENCE (0, INT_MIN, int, INT_MIN < -INT_MAX, INT_MIN);
+  CHECK_SDIFFERENCE (0, INT_MAX, int, false, 0 - INT_MAX);
+  {
+    long int result;
+    ASSERT (INT_SUBTRACT_WRAPV (INT_MAX, -1, &result) == (INT_MAX == LONG_MAX));
+    ASSERT (INT_SUBTRACT_WRAPV (INT_MIN, 1, &result) == (INT_MAX == LONG_MAX));
+  }
+
+  #define CHECK_PRODUCT(a, b, t, v, vres)                                 \
+    CHECK_PRODUCT1(a, b, t, v, vres);                                     \
+    CHECK_PRODUCT1(b, a, t, v, vres)
+  #define CHECK_SPRODUCT(a, b, t, v, vres)                                \
+    CHECK_SPRODUCT1(a, b, t, v, vres);                                    \
+    CHECK_SPRODUCT1(b, a, t, v, vres)
+  #define CHECK_PRODUCT1(a, b, t, v, vres)                                \
+    VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (v))
+  #define CHECK_SPRODUCT1(a, b, t, v, vres)                               \
+    CHECK_PRODUCT1(a, b, t, v, vres);                                     \
+    {                                                                     \
+      t result;                                                           \
+      ASSERT (INT_MULTIPLY_WRAPV (a, b, &result) == (v));                 \
+      ASSERT (result == ((v) ? (vres) : ((a) * (b))));                    \
+    }
+  CHECK_PRODUCT (-1, 1u, unsigned int, true, -1 * 1u);
+  CHECK_SPRODUCT (-1, INT_MIN, int, INT_NEGATE_OVERFLOW (INT_MIN), INT_MIN);
+  CHECK_PRODUCT (-1, UINT_MAX, unsigned int, true, -1 * UINT_MAX);
+  CHECK_SPRODUCT (-32768, LONG_MAX / -32768 - 1, long int, true, LONG_MIN);
+  CHECK_SPRODUCT (-12345, LONG_MAX / -12345, long int, false, DONTCARE);
+  CHECK_SPRODUCT (0, -1, int, false, DONTCARE);
+  CHECK_SPRODUCT (0, 0, int, false, DONTCARE);
+  CHECK_PRODUCT (0, 0u, unsigned int, false, DONTCARE);
+  CHECK_SPRODUCT (0, 1, int, false, DONTCARE);
+  CHECK_SPRODUCT (0, INT_MAX, int, false, DONTCARE);
+  CHECK_SPRODUCT (0, INT_MIN, int, false, DONTCARE);
+  CHECK_PRODUCT (0, UINT_MAX, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, -1, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, 0, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, 0u, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, 1, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, INT_MAX, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, INT_MIN, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (0u, UINT_MAX, unsigned int, false, DONTCARE);
+  CHECK_SPRODUCT (1, INT_MAX, int, false, DONTCARE);
+  CHECK_SPRODUCT (1, INT_MIN, int, false, DONTCARE);
+  CHECK_PRODUCT (1, UINT_MAX, unsigned int, false, DONTCARE);
+  CHECK_PRODUCT (1u, INT_MIN, unsigned int, true, 1u * INT_MIN);
+  CHECK_PRODUCT (1u, INT_MAX, unsigned int, UINT_MAX < INT_MAX, 1u * INT_MAX);
+  CHECK_PRODUCT (INT_MAX, UINT_MAX, unsigned int, true, INT_MAX * UINT_MAX);
+  CHECK_PRODUCT (INT_MAX, ULONG_MAX, unsigned long int, true,
+                 INT_MAX * ULONG_MAX);
+  CHECK_SPRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, long int, true, LONG_MIN);
+  CHECK_SPRODUCT (INT_MIN, LONG_MAX / INT_MIN, long int, false, DONTCARE);
+  CHECK_PRODUCT (INT_MIN, UINT_MAX, unsigned int, true, INT_MIN * UINT_MAX);
+  CHECK_PRODUCT (INT_MIN, ULONG_MAX, unsigned long int, true,
+                 INT_MIN * ULONG_MAX);
+  {
+    long int result;
+    ASSERT (INT_MULTIPLY_WRAPV (INT_MAX, INT_MAX, &result)
+            == (LONG_MAX / INT_MAX < INT_MAX));
+    ASSERT (INT_MULTIPLY_WRAPV (INT_MAX, INT_MAX, &result)
+            || result == INT_MAX * (long int) INT_MAX);
+    ASSERT (INT_MULTIPLY_WRAPV (INT_MIN, INT_MIN, &result)
+            || result == INT_MIN * (long int) INT_MIN);
+  }
+
+# ifdef LLONG_MAX
+  {
+    long long int result;
+    ASSERT (INT_MULTIPLY_WRAPV (LONG_MAX, LONG_MAX, &result)
+            == (LLONG_MAX / LONG_MAX < LONG_MAX));
+    ASSERT (INT_MULTIPLY_WRAPV (LONG_MAX, LONG_MAX, &result)
+            || result == LONG_MAX * (long long int) LONG_MAX);
+    ASSERT (INT_MULTIPLY_WRAPV (LONG_MIN, LONG_MIN, &result)
+            || result == LONG_MIN * (long long int) LONG_MIN);
+  }
+# endif
+
+  #define CHECK_QUOTIENT(a, b, v) VERIFY (INT_DIVIDE_OVERFLOW (a, b) == (v))
+
+  CHECK_QUOTIENT (INT_MIN, -1L, INT_MIN == LONG_MIN);
+  CHECK_QUOTIENT (INT_MIN, UINT_MAX, false);
+  CHECK_QUOTIENT (INTMAX_MIN, UINTMAX_MAX, false);
+  CHECK_QUOTIENT (INTMAX_MIN, UINT_MAX, false);
+  CHECK_QUOTIENT (-11, 10u, true);
+  CHECK_QUOTIENT (-10, 10u, true);
+  CHECK_QUOTIENT (-9, 10u, false);
+  CHECK_QUOTIENT (11u, -10, true);
+  CHECK_QUOTIENT (10u, -10, true);
+  CHECK_QUOTIENT (9u, -10, false);
+
+  #define CHECK_REMAINDER(a, b, v) VERIFY (INT_REMAINDER_OVERFLOW (a, b) == (v))
+
+  CHECK_REMAINDER (INT_MIN, -1L, INT_MIN == LONG_MIN);
+  CHECK_REMAINDER (-1, UINT_MAX, true);
+  CHECK_REMAINDER ((intmax_t) -1, UINTMAX_MAX, true);
+  CHECK_REMAINDER (INTMAX_MIN, UINT_MAX,
+                   (INTMAX_MAX < UINT_MAX
+                    && - (unsigned int) INTMAX_MIN % UINT_MAX != 0));
+  CHECK_REMAINDER (INT_MIN, ULONG_MAX, INT_MIN % ULONG_MAX != 1);
+  CHECK_REMAINDER (1u, -1, false);
+  CHECK_REMAINDER (37*39u, -39, false);
+  CHECK_REMAINDER (37*39u + 1, -39, true);
+  CHECK_REMAINDER (37*39u - 1, -39, true);
+  CHECK_REMAINDER (LONG_MAX, -INT_MAX, false);
 
   return 0;
 }
index 8f21a1c..18ff4a2 100644 (file)
@@ -1,5 +1,5 @@
 /* Test inttostr functions, and incidentally, INT_BUFSIZE_BOUND
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This 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 "macros.h"
 
 #define STREQ(a, b) (strcmp (a, b) == 0)
-#define FMT(T) (TYPE_SIGNED (T) ? "%jd" : "%ju")
-#define CAST_VAL(T,V) (TYPE_SIGNED (T) ? (intmax_t) (V) : (uintmax_t) (V))
-#define V_min(T) (CAST_VAL (T, TYPE_MINIMUM (T)))
-#define V_max(T) (CAST_VAL (T, TYPE_MAXIMUM (T)))
 #define IS_TIGHT(T) (_GL_SIGNED_TYPE_OR_EXPR (T) == TYPE_SIGNED (T))
 #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
 
       char const *p;                                                    \
       ASSERT (buf);                                                     \
       *buf = '\0';                                                      \
-      ASSERT (snprintf (ref, sizeof ref, FMT (T), V_min (T)) < sizeof ref); \
+      ASSERT                                                            \
+        ((TYPE_SIGNED (T)                                               \
+          ? snprintf (ref, sizeof ref, "%jd", (intmax_t) TYPE_MINIMUM (T)) \
+          : snprintf (ref, sizeof ref, "%ju", (uintmax_t) TYPE_MINIMUM (T))) \
+         < sizeof ref);                                                 \
       ASSERT (STREQ ((p = Fn (TYPE_MINIMUM (T), buf)), ref));           \
       /* Ensure that INT_BUFSIZE_BOUND is tight for signed types.  */   \
       ASSERT (! TYPE_SIGNED (T) || (p == buf && *p == '-'));            \
-      ASSERT (snprintf (ref, sizeof ref, FMT (T), V_max (T)) < sizeof ref); \
+      ASSERT                                                            \
+        ((TYPE_SIGNED (T)                                               \
+          ? snprintf (ref, sizeof ref, "%jd", (intmax_t) TYPE_MAXIMUM (T)) \
+          : snprintf (ref, sizeof ref, "%ju", (uintmax_t) TYPE_MAXIMUM (T))) \
+         < sizeof ref);                                                 \
       ASSERT (STREQ ((p = Fn (TYPE_MAXIMUM (T), buf)), ref));           \
       /* For unsigned types, the bound is not always tight.  */         \
       ASSERT (! IS_TIGHT (T) || TYPE_SIGNED (T)                         \
@@ -80,9 +84,11 @@ main (void)
       CK (off_t,        offtostr);
       CK (uintmax_t,    umaxtostr);
       CK (intmax_t,     imaxtostr);
+      free (b);
       return 0;
     }
 
   /* snprintf doesn't accept %ju; skip this test.  */
+  free (b);
   return 77;
 }
index db1a97e..9a3193c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <inttypes.h> substitute.
-   Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-ioctl.c b/gnulib-tests/test-ioctl.c
new file mode 100644 (file)
index 0000000..db7ab9e
--- /dev/null
@@ -0,0 +1,51 @@
+/* Test of ioctl() function.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <sys/ioctl.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (ioctl, int, (int, int, ...));
+
+#include <errno.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+#ifdef FIONREAD
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    int value;
+    errno = 0;
+    ASSERT (ioctl (-1, FIONREAD, &value) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    int value;
+    close (99);
+    errno = 0;
+    ASSERT (ioctl (99, FIONREAD, &value) == -1);
+    ASSERT (errno == EBADF);
+  }
+#endif
+
+  return 0;
+}
diff --git a/gnulib-tests/test-isblank.c b/gnulib-tests/test-isblank.c
new file mode 100644 (file)
index 0000000..2f6f676
--- /dev/null
@@ -0,0 +1,50 @@
+/* Test of isblank() function.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2009.  */
+
+#include <config.h>
+
+#include <ctype.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (isblank, int, (int));
+
+#include <limits.h>
+#include <stdio.h>
+
+#include "macros.h"
+
+int
+main (int argc, char *argv[])
+{
+  unsigned int c;
+
+  /* Verify the property in the "C" locale.
+     POSIX specifies in
+       <http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap07.html>
+     that
+       - in all locales, the blank characters include the <space> and <tab>
+         characters,
+       - in the "POSIX" locale (which is usually the same as the "C" locale),
+         the blank characters include only the ASCII <space> and <tab>
+         characters.  */
+  for (c = 0; c <= UCHAR_MAX; c++)
+    ASSERT (!isblank (c) == !(c == ' ' || c == '\t'));
+  ASSERT (!isblank (EOF));
+
+  return 0;
+}
index 5805425..175718f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of iswblank() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 44e931e..30b0007 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <langinfo.h> substitute.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-listen.c b/gnulib-tests/test-listen.c
new file mode 100644 (file)
index 0000000..4bc66fc
--- /dev/null
@@ -0,0 +1,49 @@
+/* Test listen() function.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (listen, int, (int, int));
+
+#include <errno.h>
+#include <unistd.h>
+
+#include "sockets.h"
+#include "macros.h"
+
+int
+main (void)
+{
+  (void) gl_sockets_startup (SOCKETS_1_1);
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    errno = 0;
+    ASSERT (listen (-1, 1) == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    close (99);
+    errno = 0;
+    ASSERT (listen (99 ,1) == -1);
+    ASSERT (errno == EBADF);
+  }
+
+  return 0;
+}
index 3fb7b85..c1811af 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <locale.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -33,11 +33,6 @@ int a[] =
     LC_TIME
   };
 
-#if HAVE_NEWLOCALE
-/* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined.  */
-locale_t b = LC_GLOBAL_LOCALE;
-#endif
-
 /* Check that the 'struct lconv' type is defined.  */
 struct lconv l;
 int ls;
@@ -49,6 +44,12 @@ verify (sizeof NULL == sizeof (void *));
 int
 main ()
 {
+#if HAVE_NEWLOCALE
+  /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined.  */
+  locale_t b = LC_GLOBAL_LOCALE;
+  (void) b;
+#endif
+
   /* Check that 'struct lconv' has the ISO C and POSIX specified members.  */
   ls += sizeof (*l.decimal_point);
   ls += sizeof (*l.thousands_sep);
index da3344f..9e83f2d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of localeconv() function.
-   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d520193..86ff465 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b8f1767..4eb9036 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of lstat() function.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7d5e62e..e9ab83d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of safe automatic memory allocation.
-   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2125bdf..f637330 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 4d2d5cb..f7fed6a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of multibyte character to wide character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -46,10 +46,7 @@ main (int argc, char *argv[])
     memset (&state, '\0', sizeof (mbstate_t));
     wc = (wchar_t) 0xBADFACE;
     ret = mbrtowc (&wc, "x", 0, &state);
-    /* gnulib's implementation returns (size_t)(-2).
-       The AIX 5.1 implementation returns (size_t)(-1).
-       glibc's implementation returns 0.  */
-    ASSERT (ret == (size_t)(-2) || ret == (size_t)(-1) || ret == 0);
+    ASSERT (ret == (size_t)(-2));
     ASSERT (mbsinit (&state));
   }
 
@@ -75,6 +72,10 @@ main (int argc, char *argv[])
     for (c = 0; c < 0x100; c++)
       switch (c)
         {
+        default:
+          if (! (c && 1 < argc && argv[1][0] == '5'))
+            break;
+          /* Fall through.  */
         case '\t': case '\v': case '\f':
         case ' ': case '!': case '"': case '#': case '%':
         case '&': case '\'': case '(': case ')': case '*':
@@ -96,7 +97,8 @@ 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".  */
+          /* c is in the ISO C "basic character set", or argv[1] starts
+             with '5' so we are testing all nonnull bytes.  */
           buf[0] = c;
           wc = (wchar_t) 0xBADFACE;
           ret = mbrtowc (&wc, buf, 1, &state);
@@ -337,6 +339,10 @@ main (int argc, char *argv[])
           ASSERT (mbsinit (&state));
         }
         return 0;
+
+      case '5':
+        /* C locale; tested above.  */
+        return 0;
       }
 
   return 1;
diff --git a/gnulib-tests/test-mbrtowc5.sh b/gnulib-tests/test-mbrtowc5.sh
new file mode 100755 (executable)
index 0000000..c10b228
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# Test whether the POSIX locale has encoding errors.
+LC_ALL=C \
+./test-mbrtowc${EXEEXT} 5 || exit
+LC_ALL=POSIX \
+./test-mbrtowc${EXEEXT} 5
index d2d65d9..76b6772 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of case-insensitive string comparison function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 931f059..8cd1c4d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of test for initial conversion state.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d48a30b..aef88a3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of string to wide string.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 61d0032..8b1ac0a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index caccb42..919e47c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f5cfdde..622f0ec 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of searching in a string.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 0ca4589..1526ed2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2008-2016 Free Software Foundation, Inc.
  * Written by Eric Blake and Bruno Haible
  *
  * This program is free software: you can redistribute it and/or modify
diff --git a/gnulib-tests/test-nanosleep.c b/gnulib-tests/test-nanosleep.c
new file mode 100644 (file)
index 0000000..26ca73b
--- /dev/null
@@ -0,0 +1,83 @@
+/* Test of nanosleep() function.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
+
+#include <config.h>
+
+#include <time.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (nanosleep, int, (struct timespec const *, struct timespec *));
+
+#include <errno.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+#if HAVE_DECL_ALARM
+static void
+handle_alarm (int sig)
+{
+  if (sig != SIGALRM)
+    _exit (1);
+}
+#endif
+
+int
+main (void)
+{
+  struct timespec ts;
+
+  ts.tv_sec = 1000;
+  ts.tv_nsec = -1;
+  errno = 0;
+  ASSERT (nanosleep (&ts, NULL) == -1);
+  ASSERT (errno == EINVAL);
+  ts.tv_nsec = 1000000000;
+  errno = 0;
+  ASSERT (nanosleep (&ts, NULL) == -1);
+  ASSERT (errno == EINVAL);
+
+  ts.tv_sec = 0;
+  ts.tv_nsec = 1;
+  ASSERT (nanosleep (&ts, &ts) == 0);
+  /* Remaining time is only defined on EINTR failure; but on success,
+     it is typically either 0 or unchanged from input.  At any rate,
+     it shouldn't be randomly changed to unrelated values.  */
+  ASSERT (ts.tv_sec == 0);
+  ASSERT (ts.tv_nsec == 0 || ts.tv_nsec == 1);
+  ts.tv_nsec = 0;
+  ASSERT (nanosleep (&ts, NULL) == 0);
+
+#if HAVE_DECL_ALARM
+  {
+    const time_t pentecost = 50 * 24 * 60 * 60; /* 50 days.  */
+    signal (SIGALRM, handle_alarm);
+    alarm (1);
+    ts.tv_sec = pentecost;
+    ts.tv_nsec = 999999999;
+    errno = 0;
+    ASSERT (nanosleep (&ts, &ts) == -1);
+    ASSERT (errno == EINTR);
+    ASSERT (pentecost - 10 < ts.tv_sec && ts.tv_sec <= pentecost);
+    ASSERT (0 <= ts.tv_nsec && ts.tv_nsec <= 999999999);
+  }
+#endif
+
+  return 0;
+}
diff --git a/gnulib-tests/test-netinet_in.c b/gnulib-tests/test-netinet_in.c
new file mode 100644 (file)
index 0000000..8a603da
--- /dev/null
@@ -0,0 +1,27 @@
+/* Test of <netinet/in.h> substitute.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <netinet/in.h>
+
+int
+main (void)
+{
+  return 0;
+}
index d31e54f..3a8fa8f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of nl_langinfo replacement.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f04144f..d9e2e27 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index babb239..faaff0f 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of opening a file descriptor.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+/* 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
+   pointer when _FORTIFY_SOURCE is positive.  */
+
+#if __GLIBC__ && defined __always_inline
+# define ALWAYS_INLINE __always_inline
+#else
+# define ALWAYS_INLINE
+#endif
+
 /* This file is designed to test both open(n,buf[,mode]) and
    openat(AT_FDCWD,n,buf[,mode]).  FUNC is the function to test.
    Assumes that BASE and ASSERT are already defined, and that
    appropriate headers are already included.  If PRINT, warn before
    skipping symlink tests with status 77.  */
 
-static int
+static ALWAYS_INLINE int
 test_open (int (*func) (char const *, int, ...), bool print)
 {
   int fd;
index 81a0350..ac4a393 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of "pathmax.h".
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-perror.c b/gnulib-tests/test-perror.c
new file mode 100644 (file)
index 0000000..164a79c
--- /dev/null
@@ -0,0 +1,36 @@
+/* Test of perror() function.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (perror, void, (char const *));
+
+#include <errno.h>
+
+int
+main (int argc, char **argv)
+{
+  const char *prefix = (argc > 1 ? argv[1] : NULL);
+
+  errno = EACCES;    perror (prefix);
+  errno = ETIMEDOUT; perror (prefix);
+  errno = EOVERFLOW; perror (prefix);
+
+  return 0;
+}
diff --git a/gnulib-tests/test-perror.sh b/gnulib-tests/test-perror.sh
new file mode 100755 (executable)
index 0000000..7274d32
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+: ${srcdir=.}
+. "$srcdir/init.sh"; path_prepend_ .
+
+# Test NULL prefix. Result should not contain a number.
+test-perror 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror.tmp
+grep '[0-9]' t-perror.tmp > /dev/null \
+  && fail_ "result should not contain a number"
+
+# Test empty prefix. Result should be the same.
+test-perror '' 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror1.tmp
+diff t-perror.tmp t-perror1.tmp \
+  || fail_ "empty prefix should behave like NULL argument"
+
+# Test non-empty prefix.
+test-perror foo 2>&1 >/dev/null | LC_ALL=C tr -d '\r' > t-perror3.tmp
+sed -e 's/^/foo: /' < t-perror.tmp > t-perror2.tmp
+diff t-perror2.tmp t-perror3.tmp || fail_ "prefix applied incorrectly"
+
+# Test exit status.
+test-perror >out 2>/dev/null || fail_ "unexpected exit status"
+test -s out && fail_ "unexpected output"
+
+Exit 0
diff --git a/gnulib-tests/test-perror2.c b/gnulib-tests/test-perror2.c
new file mode 100644 (file)
index 0000000..e295576
--- /dev/null
@@ -0,0 +1,136 @@
+/* Test of perror() function.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include <errno.h>
+#include <string.h>
+#include <unistd.h>
+
+/* 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.  */
+#define BACKUP_STDERR_FILENO 10
+#define ASSERT_STREAM myerr
+#include "macros.h"
+
+static FILE *myerr;
+
+#define BASE "test-perror2"
+
+int
+main (void)
+{
+  /* We change fd 2 later, so save it in fd 10.  */
+  if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO
+      || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL)
+    return 2;
+
+  ASSERT (freopen (BASE ".tmp", "w+", stderr) == stderr);
+
+  /* Test that perror does not clobber strerror buffer.  */
+  {
+    const char *msg1;
+    const char *msg2;
+    const char *msg3;
+    const char *msg4;
+    char *str1;
+    char *str2;
+    char *str3;
+    char *str4;
+
+    msg1 = strerror (ENOENT);
+    ASSERT (msg1);
+    str1 = strdup (msg1);
+    ASSERT (str1);
+
+    msg2 = strerror (ERANGE);
+    ASSERT (msg2);
+    str2 = strdup (msg2);
+    ASSERT (str2);
+
+    msg3 = strerror (-4);
+    ASSERT (msg3);
+    str3 = strdup (msg3);
+    ASSERT (str3);
+
+    msg4 = strerror (1729576);
+    ASSERT (msg4);
+    str4 = strdup (msg4);
+    ASSERT (str4);
+
+    errno = EACCES;
+    perror ("");
+    errno = -5;
+    perror ("");
+    ASSERT (!ferror (stderr));
+    ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
+    ASSERT (msg2 == msg4 || STREQ (msg2, str2));
+    ASSERT (msg3 == msg4 || STREQ (msg3, str3));
+    ASSERT (STREQ (msg4, str4));
+
+    free (str1);
+    free (str2);
+    free (str3);
+    free (str4);
+  }
+
+  /* Test that perror uses the same message as strerror.  */
+  {
+    int errs[] = { EACCES, 0, -3, };
+    int i;
+    for (i = 0; i < SIZEOF (errs); i++)
+      {
+        char buf[256];
+        char *err = strerror (errs[i]);
+
+        ASSERT (err);
+        ASSERT (strlen (err) < sizeof buf);
+        rewind (stderr);
+        ASSERT (ftruncate (fileno (stderr), 0) == 0);
+        errno = errs[i];
+        perror (NULL);
+        ASSERT (!ferror (stderr));
+        rewind (stderr);
+        ASSERT (fgets (buf, sizeof buf, stderr) == buf);
+        ASSERT (strstr (buf, err));
+      }
+  }
+
+  /* Test that perror reports write failure.  */
+  {
+    ASSERT (freopen (BASE ".tmp", "r", stderr) == stderr);
+    ASSERT (setvbuf (stderr, NULL, _IONBF, BUFSIZ) == 0);
+    errno = -1;
+    ASSERT (!ferror (stderr));
+    perror (NULL);
+#if 0
+    /* Commented out until cygwin behaves:
+       http://sourceware.org/ml/newlib/2011/msg00228.html */
+    ASSERT (errno > 0);
+    /* Commented out until glibc behaves:
+       http://sourceware.org/bugzilla/show_bug.cgi?id=12792 */
+    ASSERT (ferror (stderr));
+#endif
+  }
+
+  ASSERT (fclose (stderr) == 0);
+  ASSERT (remove (BASE ".tmp") == 0);
+
+  return 0;
+}
diff --git a/gnulib-tests/test-pipe.c b/gnulib-tests/test-pipe.c
new file mode 100644 (file)
index 0000000..4282c05
--- /dev/null
@@ -0,0 +1,104 @@
+/* Test of pipe.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <unistd.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (pipe, int, (int[2]));
+
+#include <fcntl.h>
+#include <stdbool.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions.  */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* Get _get_osfhandle.  */
+# include "msvc-nothrow.h"
+#endif
+
+#include "binary-io.h"
+#include "macros.h"
+
+/* Return true if FD is open.  */
+static bool
+is_open (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* On native Windows, the initial state of unassigned standard file
+     descriptors is that they are open but point to an
+     INVALID_HANDLE_VALUE, and there is no fcntl.  */
+  return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+#else
+# ifndef F_GETFL
+#  error Please port fcntl to your platform
+# endif
+  return 0 <= fcntl (fd, F_GETFL);
+#endif
+}
+
+/* Return true if FD is not inherited to child processes.  */
+static bool
+is_cloexec (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  HANDLE h = (HANDLE) _get_osfhandle (fd);
+  DWORD flags;
+  ASSERT (GetHandleInformation (h, &flags));
+  return (flags & HANDLE_FLAG_INHERIT) == 0;
+#else
+  int flags;
+  ASSERT ((flags = fcntl (fd, F_GETFD)) >= 0);
+  return (flags & FD_CLOEXEC) != 0;
+#endif
+}
+
+/* Return true if FD is in non-blocking mode.  */
+static bool
+is_nonblocking (int fd)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* We don't use the non-blocking mode for sockets here.  */
+  return 0;
+#else
+  int flags;
+  ASSERT ((flags = fcntl (fd, F_GETFL)) >= 0);
+  return (flags & O_NONBLOCK) != 0;
+#endif
+}
+
+int
+main ()
+{
+  int fd[2];
+
+  fd[0] = -1;
+  fd[1] = -1;
+  ASSERT (pipe (fd) >= 0);
+  ASSERT (fd[0] >= 0);
+  ASSERT (fd[1] >= 0);
+  ASSERT (fd[0] != fd[1]);
+  ASSERT (is_open (fd[0]));
+  ASSERT (is_open (fd[1]));
+  ASSERT (!is_cloexec (fd[0]));
+  ASSERT (!is_cloexec (fd[1]));
+  ASSERT (!is_nonblocking (fd[0]));
+  ASSERT (!is_nonblocking (fd[1]));
+
+  return 0;
+}
index e7aa8fb..6bb4b35 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of quotearg family of functions.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
 #include "localcharset.h"
 #include "progname.h"
 #include "macros.h"
+#include "zerosize-ptr.h"
 
 #include "test-quotearg.h"
 
@@ -57,6 +58,28 @@ static struct result_groups results_g[] = {
     { "''", "'1'", 3, "'simple'", "' \t\n'\\''\"\033?""?/\\'", "'a:b'",
       "'a\\b'", "'" LQ RQ "'", "'" LQ RQ "'" } },
 
+  /* shell_escape_quoting_style */
+  { { "''", "''$'\\0''1'$'\\0'", 15, "simple",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "a:b",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", LQ RQ },
+    { "''", "''$'\\0''1'$'\\0'", 15, "simple",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "a:b",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", LQ RQ },
+    { "''", "''$'\\0''1'$'\\0'", 15, "simple",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "'a:b'",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", LQ RQ } },
+
+  /* shell_escape_always_quoting_style */
+  { { "''", "''$'\\0''1'$'\\0'", 15, "'simple'",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "'a:b'",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", "'" LQ RQ "'" },
+    { "''", "''$'\\0''1'$'\\0'", 15, "'simple'",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "'a:b'",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", "'" LQ RQ "'" },
+    { "''", "''$'\\0''1'$'\\0'", 15, "'simple'",
+      "' '$'\\t\\n'\\''\"'$'\\033''?""?/\\'", "'a:b'",
+      "'a\\b'", "''$'" LQ_ENC RQ_ENC "'", "'" LQ RQ "'" } },
+
   /* c_quoting_style */
   { { "\"\"", "\"\\0001\\0\"", 9, "\"simple\"",
       "\" \\t\\n'\\\"\\033?""?/\\\\\"", "\"a:b\"", "\"a\\\\b\"",
@@ -297,6 +320,40 @@ main (int argc _GL_UNUSED, char *argv[])
                        ascii_only);
     }
 
+  {
+    /* Trigger the bug whereby quotearg_buffer would read beyond the NUL
+       that defines the end of the string being quoted.  Use an input
+       string whose NUL is the last byte before an unreadable page.  */
+    char *z = zerosize_ptr ();
+
+    if (z)
+      {
+        size_t q_len = 1024;
+        char *q = malloc (q_len + 1);
+        char buf[10];
+        memset (q, 'Q', q_len);
+        q[q_len] = 0;
+
+        /* Z points to the boundary between a readable/writable page
+           and one that is neither readable nor writable.  Position
+           our string so its NUL is at the end of the writable one.  */
+        char const *str = "____";
+        size_t s_len = strlen (str);
+        z -= s_len + 1;
+        memcpy (z, str, s_len + 1);
+
+        set_custom_quoting (NULL, q, q);
+        /* Whether this actually triggers a SEGV depends on the
+           implementation of memcmp: whether it compares only byte-at-
+           a-time, and from left to right (no SEGV) or some other way.  */
+        size_t n = quotearg_buffer (buf, sizeof buf, z, SIZE_MAX, NULL);
+        ASSERT (n == s_len + 2 * q_len);
+        ASSERT (memcmp (buf, q, sizeof buf) == 0);
+        free (q);
+      }
+  }
+
   quotearg_free ();
+
   return 0;
 }
index 02e0c13..7eee6b5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of quotearg family of functions.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3c58b6b..b793e97 100644 (file)
@@ -1,5 +1,5 @@
 /* Test raising a signal.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-rawmemchr.c b/gnulib-tests/test-rawmemchr.c
new file mode 100644 (file)
index 0000000..4f4ec7b
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2008-2016 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
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (rawmemchr, void *, (void const *, int));
+
+#include <stdlib.h>
+
+#include "zerosize-ptr.h"
+#include "macros.h"
+
+/* Calculating void * + int is not portable, so this wrapper converts
+   to char * to make the tests easier to write.  */
+#define RAWMEMCHR (char *) rawmemchr
+
+int
+main (void)
+{
+  size_t n = 0x100000;
+  char *input = malloc (n + 1);
+  ASSERT (input);
+
+  input[0] = 'a';
+  input[1] = 'b';
+  memset (input + 2, 'c', 1024);
+  memset (input + 1026, 'd', n - 1028);
+  input[n - 2] = 'e';
+  input[n - 1] = 'a';
+  input[n] = '\0';
+
+  /* Basic behavior tests.  */
+  ASSERT (RAWMEMCHR (input, 'a') == input);
+  ASSERT (RAWMEMCHR (input, 'b') == input + 1);
+  ASSERT (RAWMEMCHR (input, 'c') == input + 2);
+  ASSERT (RAWMEMCHR (input, 'd') == input + 1026);
+
+  ASSERT (RAWMEMCHR (input + 1, 'a') == input + n - 1);
+  ASSERT (RAWMEMCHR (input + 1, 'e') == input + n - 2);
+  ASSERT (RAWMEMCHR (input + 1, 0x789abc00 | 'e') == input + n - 2);
+
+  ASSERT (RAWMEMCHR (input, '\0') == input + n);
+
+  /* Alignment tests.  */
+  {
+    int i, j;
+    for (i = 0; i < 32; i++)
+      {
+        for (j = 0; j < 256; j++)
+          input[i + j] = j;
+        for (j = 0; j < 256; j++)
+          {
+            ASSERT (RAWMEMCHR (input + i, j) == input + i + j);
+          }
+      }
+  }
+
+  /* Ensure that no unaligned oversized reads occur.  */
+  {
+    char *page_boundary = (char *) zerosize_ptr ();
+    size_t i;
+
+    if (!page_boundary)
+      page_boundary = input + 4096;
+    memset (page_boundary - 512, '1', 511);
+    page_boundary[-1] = '2';
+    for (i = 1; i <= 512; i++)
+      ASSERT (RAWMEMCHR (page_boundary - i, (i * 0x01010100) | '2')
+              == page_boundary - 1);
+  }
+
+  free (input);
+
+  return 0;
+}
index e59ebe4..fdff6e1 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of readlink.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d19f9b3..cba98f6 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of readlink.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5a94c14..c0d9824 100644 (file)
@@ -1,5 +1,5 @@
 /* Test regular expressions
-   Copyright 1996-2001, 2003-2013 Free Software Foundation, Inc.
+   Copyright 1996-2001, 2003-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
 
 #include <locale.h>
 #include <limits.h>
+#include <stdlib.h>
 #include <string.h>
 #if HAVE_DECL_ALARM
 # include <unistd.h>
@@ -61,10 +62,17 @@ main (void)
         s = re_compile_pattern (pat, sizeof pat - 1, &regex);
         if (s)
           result |= 1;
-        else if (re_search (&regex, data, sizeof data - 1,
-                            0, sizeof data - 1, &regs)
-                 != -1)
-          result |= 1;
+        else
+          {
+            memset (&regs, 0, sizeof regs);
+            if (re_search (&regex, data, sizeof data - 1,
+                           0, sizeof data - 1, &regs)
+                != -1)
+              result |= 1;
+            regfree (&regex);
+            free (regs.start);
+            free (regs.end);
+          }
       }
 
       /* Check whether it's really a UTF-8 locale.
@@ -79,17 +87,32 @@ main (void)
           */
           static char const pat[] = "[^x]x";
           static char const data[] =
-            "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80"
-            "\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
+            /* <U1000><U103B><U103D><U1014><U103A><U102F><U1015><U103A> */
+            "\xe1\x80\x80"
+            "\xe1\x80\xbb"
+            "\xe1\x80\xbd"
+            "\xe1\x80\x94"
+            "\xe1\x80\xba"
+            "\xe1\x80\xaf"
+            "\xe1\x80\x95"
+            "\xe1\x80\xba"
+            "x";
           re_set_syntax (0);
           memset (&regex, 0, sizeof regex);
           s = re_compile_pattern (pat, sizeof pat - 1, &regex);
           if (s)
             result |= 1;
-          else if (re_search (&regex, data, sizeof data - 1,
-                              0, sizeof data - 1, 0)
-                   != 21)
-            result |= 1;
+          else
+            {
+              memset (&regs, 0, sizeof regs);
+              i = re_search (&regex, data, sizeof data - 1,
+                             0, sizeof data - 1, 0);
+              if (i != 0 && i != 21)
+                result |= 1;
+              regfree (&regex);
+              free (regs.start);
+              free (regs.end);
+            }
         }
 
       if (! setlocale (LC_ALL, "C"))
@@ -103,8 +126,15 @@ main (void)
   if (s)
     result |= 2;
   /* This should fail, but succeeds for glibc-2.5.  */
-  else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
-    result |= 2;
+  else
+    {
+      memset (&regs, 0, sizeof regs);
+      if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+        result |= 2;
+      regfree (&regex);
+      free (regs.start);
+      free (regs.end);
+    }
 
   /* This regular expression is from Spencer ere test number 75
      in grep-2.3.  */
@@ -116,7 +146,10 @@ main (void)
   s = re_compile_pattern ("a[[:@:>@:]]b\n", 11, &regex);
   /* This should fail with _Invalid character class name_ error.  */
   if (!s)
-    result |= 4;
+    {
+      result |= 4;
+      regfree (&regex);
+    }
 
   /* Ensure that [b-a] is diagnosed as invalid, when
      using RE_NO_EMPTY_RANGES. */
@@ -124,13 +157,18 @@ main (void)
   memset (&regex, 0, sizeof regex);
   s = re_compile_pattern ("a[b-a]", 6, &regex);
   if (s == 0)
-    result |= 8;
+    {
+      result |= 8;
+      regfree (&regex);
+    }
 
   /* This should succeed, but does not for glibc-2.1.3.  */
   memset (&regex, 0, sizeof regex);
   s = re_compile_pattern ("{1", 2, &regex);
   if (s)
     result |= 8;
+  else
+    regfree (&regex);
 
   /* The following example is derived from a problem report
      against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>.  */
@@ -139,16 +177,30 @@ main (void)
   if (s)
     result |= 8;
   /* This should match, but does not for glibc-2.2.1.  */
-  else if (re_match (&regex, "an", 2, 0, &regs) != 2)
-    result |= 8;
+  else
+    {
+      memset (&regs, 0, sizeof regs);
+      if (re_match (&regex, "an", 2, 0, &regs) != 2)
+        result |= 8;
+      regfree (&regex);
+      free (regs.start);
+      free (regs.end);
+    }
 
   memset (&regex, 0, sizeof regex);
   s = re_compile_pattern ("x", 1, &regex);
   if (s)
     result |= 8;
   /* glibc-2.2.93 does not work with a negative RANGE argument.  */
-  else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
-    result |= 8;
+  else
+    {
+      memset (&regs, 0, sizeof regs);
+      if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+        result |= 8;
+      regfree (&regex);
+      free (regs.start);
+      free (regs.end);
+    }
 
   /* The version of regex.c in older versions of gnulib
      ignored RE_ICASE.  Detect that problem too.  */
@@ -157,8 +209,15 @@ main (void)
   s = re_compile_pattern ("x", 1, &regex);
   if (s)
     result |= 16;
-  else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
-    result |= 16;
+  else
+    {
+      memset (&regs, 0, sizeof regs);
+      if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+        result |= 16;
+      regfree (&regex);
+      free (regs.start);
+      free (regs.end);
+    }
 
   /* Catch a bug reported by Vin Shelton in
      http://lists.gnu.org/archive/html/bug-coreutils/2007-06/msg00089.html
@@ -170,6 +229,8 @@ main (void)
   s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
   if (s)
     result |= 32;
+  else
+    regfree (&regex);
 
   /* REG_STARTEND was added to glibc on 2004-01-15.
      Reject older versions.  */
diff --git a/gnulib-tests/test-select-fd.c b/gnulib-tests/test-select-fd.c
new file mode 100644 (file)
index 0000000..452ddb2
--- /dev/null
@@ -0,0 +1,72 @@
+/* Test of select() substitute, reading or writing from a given file descriptor.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/select.h>
+
+int
+main (int argc, char *argv[])
+{
+  if (argc == 4)
+    {
+      char mode = argv[1][0];
+
+      if (mode == 'r' || mode == 'w')
+        {
+          int fd = atoi (argv[2]);
+
+          if (fd >= 0)
+            {
+              const char *result_file_name = argv[3];
+              FILE *result_file = fopen (result_file_name, "wb");
+
+              if (result_file != NULL)
+                {
+                  fd_set fds;
+                  struct timeval timeout;
+                  int ret;
+
+                  FD_ZERO (&fds);
+                  FD_SET (fd, &fds);
+                  timeout.tv_sec = 0;
+                  timeout.tv_usec = 10000;
+                  ret = (mode == 'r'
+                         ? select (fd + 1, &fds, NULL, NULL, &timeout)
+                         : select (fd + 1, NULL, &fds, NULL, &timeout));
+                  if (ret < 0)
+                    {
+                      perror ("select failed");
+                      exit (1);
+                    }
+                  if ((ret == 0) != ! FD_ISSET (fd, &fds))
+                    {
+                      fprintf (stderr, "incorrect return value\n");
+                      exit (1);
+                    }
+                  fprintf (result_file, "%d\n", ret);
+                  exit (0);
+                }
+            }
+        }
+    }
+  fprintf (stderr, "Usage: test-select-fd mode fd result-file-name\n");
+  exit (1);
+}
diff --git a/gnulib-tests/test-select-in.sh b/gnulib-tests/test-select-in.sh
new file mode 100755 (executable)
index 0000000..44f5dbb
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Test select() on file descriptors opened for reading.
+
+# This test is known to fail on Solaris 2.6 and older, due to its handling
+# of /dev/null.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles t-select-in.tmp"
+
+# Regular files.
+
+rm -f t-select-in.tmp
+./test-select-fd${EXEEXT} r 0 t-select-in.tmp < ./test-select-fd${EXEEXT}
+test `cat t-select-in.tmp` = "1" || exit 1
+
+# Pipes.
+
+rm -f t-select-in.tmp
+{ sleep 1; echo abc; } | \
+  { ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; cat > /dev/null; }
+test `cat t-select-in.tmp` = "0" || exit 1
+
+rm -f t-select-in.tmp
+echo abc | { sleep 1; ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; }
+test `cat t-select-in.tmp` = "1" || exit 1
+
+# Special files.
+# This part of the test is known to fail on Solaris 2.6 and older.
+
+rm -f t-select-in.tmp
+./test-select-fd${EXEEXT} r 0 t-select-in.tmp < /dev/null
+test `cat t-select-in.tmp` = "1" || exit 1
+
+rm -fr $tmpfiles
+
+exit 0
diff --git a/gnulib-tests/test-select-out.sh b/gnulib-tests/test-select-out.sh
new file mode 100755 (executable)
index 0000000..c5fd861
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/sh
+# Test select() on file descriptors opened for writing.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles t-select-out.out t-select-out.tmp"
+
+# Regular files.
+
+rm -f t-select-out.tmp
+./test-select-fd${EXEEXT} w 1 t-select-out.tmp > t-select-out.out
+test `cat t-select-out.tmp` = "1" || exit 1
+
+# Pipes.
+
+if false; then # This test fails on some platforms.
+  rm -f t-select-out.tmp
+  ( { echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | { sleep 1; cat; } ) > /dev/null
+  test `cat t-select-out.tmp` = "0" || exit 1
+fi
+
+rm -f t-select-out.tmp
+( { sleep 1; echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | cat) > /dev/null
+test `cat t-select-out.tmp` = "1" || exit 1
+
+# Special files.
+
+rm -f t-select-out.tmp
+./test-select-fd${EXEEXT} w 1 t-select-out.tmp > /dev/null
+test `cat t-select-out.tmp` = "1" || exit 1
+
+rm -fr $tmpfiles
+
+exit 0
diff --git a/gnulib-tests/test-select-stdin.c b/gnulib-tests/test-select-stdin.c
new file mode 100644 (file)
index 0000000..0250af4
--- /dev/null
@@ -0,0 +1,83 @@
+/* Test of select() substitute, reading from stdin.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2008.  */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+  printf ("Applying select() from standard input. Press Ctrl-C to abort.\n");
+  for (;;)
+    {
+      struct timeval before;
+      struct timeval after;
+      unsigned long spent_usec;
+      fd_set readfds;
+      struct timeval timeout;
+      int ret;
+
+      gettimeofday (&before, NULL);
+
+      FD_ZERO (&readfds);
+      FD_SET (0, &readfds);
+      timeout.tv_sec = 0;
+      timeout.tv_usec = 500000;
+      ret = select (1, &readfds, NULL, NULL, &timeout);
+
+      gettimeofday (&after, NULL);
+      spent_usec = (after.tv_sec - before.tv_sec) * 1000000
+                   + after.tv_usec - before.tv_usec;
+
+      if (ret < 0)
+        {
+          perror ("select failed");
+          exit (1);
+        }
+      if ((ret == 0) != ! FD_ISSET (0, &readfds))
+        {
+          fprintf (stderr, "incorrect return value\n");
+          exit (1);
+        }
+      if (ret == 0)
+        {
+          if (spent_usec < 250000)
+            {
+              fprintf (stderr, "returned too early\n");
+              exit (1);
+            }
+          /* Timeout */
+          printf (".");
+          ASSERT (fflush (stdout) == 0);
+        }
+      else
+        {
+          char c;
+
+          printf ("Input available! Trying to read 1 byte...\n");
+          ASSERT (read (0, &c, 1) == 1);
+        }
+    }
+}
diff --git a/gnulib-tests/test-select.c b/gnulib-tests/test-select.c
new file mode 100644 (file)
index 0000000..9747923
--- /dev/null
@@ -0,0 +1,34 @@
+/* Test of select() substitute.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini, 2008.  */
+
+#include <config.h>
+
+#include <sys/select.h>
+
+#include "signature.h"
+
+SIGNATURE_CHECK (select, int, (int, fd_set *, fd_set *, fd_set *,
+                               struct timeval *));
+
+#include "test-select.h"
+
+int
+main (void)
+{
+  return test_function (select);
+}
diff --git a/gnulib-tests/test-select.h b/gnulib-tests/test-select.h
new file mode 100644 (file)
index 0000000..f6daba3
--- /dev/null
@@ -0,0 +1,462 @@
+/* Test of select() substitute.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini, 2008.  */
+
+#include <stdio.h>
+#include <string.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+
+#include "macros.h"
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WINDOWS_NATIVE
+#endif
+
+#ifdef HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+
+#ifndef SO_REUSEPORT
+# define SO_REUSEPORT    SO_REUSEADDR
+#endif
+
+#define TEST_PORT       12345
+
+
+typedef int (*select_fn) (int, fd_set *, fd_set *, fd_set *, struct timeval *);
+
+
+/* Minimal testing infrastructure.  */
+
+static int failures;
+
+static void
+failed (const char *reason)
+{
+  if (++failures > 1)
+    printf ("  ");
+  printf ("failed (%s)\n", reason);
+}
+
+static int
+test (void (*fn) (select_fn), select_fn my_select, const char *msg)
+{
+  failures = 0;
+  printf ("%s... ", msg);
+  fflush (stdout);
+  fn (my_select);
+
+  if (!failures)
+    printf ("passed\n");
+
+  return failures;
+}
+
+
+/* Funny socket code.  */
+
+static int
+open_server_socket (void)
+{
+  int s, x;
+  struct sockaddr_in ia;
+
+  s = socket (AF_INET, SOCK_STREAM, 0);
+
+  x = 1;
+  setsockopt (s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof (x));
+
+  memset (&ia, 0, sizeof (ia));
+  ia.sin_family = AF_INET;
+  inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
+  ia.sin_port = htons (TEST_PORT);
+  if (bind (s, (struct sockaddr *) &ia, sizeof (ia)) < 0)
+    {
+      perror ("bind");
+      exit (77);
+    }
+
+  if (listen (s, 1) < 0)
+    {
+      perror ("listen");
+      exit (77);
+    }
+
+  return s;
+}
+
+static int
+connect_to_socket (bool blocking)
+{
+  int s;
+  struct sockaddr_in ia;
+
+  s = socket (AF_INET, SOCK_STREAM, 0);
+
+  memset (&ia, 0, sizeof (ia));
+  ia.sin_family = AF_INET;
+  inet_pton (AF_INET, "127.0.0.1", &ia.sin_addr);
+  ia.sin_port = htons (TEST_PORT);
+
+  if (!blocking)
+    {
+#ifdef WINDOWS_NATIVE
+      unsigned long iMode = 1;
+      ioctl (s, FIONBIO, (char *) &iMode);
+
+#elif defined F_GETFL
+      int oldflags = fcntl (s, F_GETFL, NULL);
+
+      if (!(oldflags & O_NONBLOCK))
+        fcntl (s, F_SETFL, oldflags | O_NONBLOCK);
+#endif
+    }
+
+  if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0
+      && (blocking || errno != EINPROGRESS))
+    {
+      perror ("connect");
+      exit (77);
+    }
+
+  return s;
+}
+
+
+/* A slightly more convenient interface to select(2).
+   Waits until a specific event occurs on a file descriptor FD.
+   EV is a bit mask of events to look for:
+     SEL_IN - input can be polled without blocking,
+     SEL_OUT - output can be provided without blocking,
+     SEL_EXC - an exception occurred,
+   A maximum wait time is specified by TIMEOUT.
+   *TIMEOUT = { 0, 0 } means to return immediately,
+   TIMEOUT = NULL means to wait indefinitely.  */
+
+enum { SEL_IN = 1, SEL_OUT = 2, SEL_EXC = 4 };
+
+static int
+do_select (int fd, int ev, struct timeval *timeout, select_fn my_select)
+{
+  fd_set rfds, wfds, xfds;
+  int r, rev;
+
+  FD_ZERO (&rfds);
+  FD_ZERO (&wfds);
+  FD_ZERO (&xfds);
+  if (ev & SEL_IN)
+    FD_SET (fd, &rfds);
+  if (ev & SEL_OUT)
+    FD_SET (fd, &wfds);
+  if (ev & SEL_EXC)
+    FD_SET (fd, &xfds);
+  r = my_select (fd + 1, &rfds, &wfds, &xfds, timeout);
+  if (r < 0)
+    return r;
+
+  rev = 0;
+  if (FD_ISSET (fd, &rfds))
+    rev |= SEL_IN;
+  if (FD_ISSET (fd, &wfds))
+    rev |= SEL_OUT;
+  if (FD_ISSET (fd, &xfds))
+    rev |= SEL_EXC;
+  if (rev && r == 0)
+    failed ("select returned 0");
+  if (rev & ~ev)
+    failed ("select returned unrequested events");
+
+  return rev;
+}
+
+static int
+do_select_nowait (int fd, int ev, select_fn my_select)
+{
+  struct timeval tv0;
+  tv0.tv_sec = 0;
+  tv0.tv_usec = 0;
+  return do_select (fd, ev, &tv0, my_select);
+}
+
+static int
+do_select_wait (int fd, int ev, select_fn my_select)
+{
+  return do_select (fd, ev, NULL, my_select);
+}
+
+
+/* Test select(2) for TTYs.  */
+
+#ifdef INTERACTIVE
+static void
+test_tty (select_fn my_select)
+{
+  if (do_select_nowait (0, SEL_IN, my_select) != 0)
+    failed ("can read");
+  if (do_select_nowait (0, SEL_OUT, my_select) == 0)
+    failed ("cannot write");
+
+  if (do_select_wait (0, SEL_IN, my_select) == 0)
+    failed ("return with infinite timeout");
+
+  getchar ();
+  if (do_select_nowait (0, SEL_IN, my_select) != 0)
+    failed ("can read after getc");
+}
+#endif
+
+
+static int
+do_select_bad_nfd_nowait (int nfd, select_fn my_select)
+{
+  struct timeval tv0;
+  tv0.tv_sec = 0;
+  tv0.tv_usec = 0;
+  errno = 0;
+  return my_select (nfd, NULL, NULL, NULL, &tv0);
+}
+
+static void
+test_bad_nfd (select_fn my_select)
+{
+  if (do_select_bad_nfd_nowait (-1, my_select) != -1 || errno != EINVAL)
+    failed ("invalid errno after negative nfds");
+  /* Can't test FD_SETSIZE + 1 for EINVAL, since some systems allow
+     dynamically larger set size by redefining FD_SETSIZE anywhere up
+     to the actual maximum fd.  */
+  /* if (do_select_bad_nfd_nowait (FD_SETSIZE + 1, my_select) != -1 */
+  /*     || errno != EINVAL) */
+  /*   failed ("invalid errno after bogus nfds"); */
+}
+
+/* Test select(2) on invalid file descriptors.  */
+
+static int
+do_select_bad_fd (int fd, int ev, struct timeval *timeout, select_fn my_select)
+{
+  fd_set rfds, wfds, xfds;
+
+  FD_ZERO (&rfds);
+  FD_ZERO (&wfds);
+  FD_ZERO (&xfds);
+  if (ev & SEL_IN)
+    FD_SET (fd, &rfds);
+  if (ev & SEL_OUT)
+    FD_SET (fd, &wfds);
+  if (ev & SEL_EXC)
+    FD_SET (fd, &xfds);
+  errno = 0;
+  return my_select (fd + 1, &rfds, &wfds, &xfds, timeout);
+  /* In this case, when fd is invalid, on some platforms, the bit for fd
+     is left alone in the fd_set, whereas on other platforms it is cleared.
+     So, don't check the bit for fd here.  */
+}
+
+static int
+do_select_bad_fd_nowait (int fd, int ev, select_fn my_select)
+{
+  struct timeval tv0;
+  tv0.tv_sec = 0;
+  tv0.tv_usec = 0;
+  return do_select_bad_fd (fd, ev, &tv0, my_select);
+}
+
+static void
+test_bad_fd (select_fn my_select)
+{
+  /* This tests fails on OSF/1 and native Windows, even with fd = 16.  */
+#if !(defined __osf__ || defined WINDOWS_NATIVE)
+  int fd;
+
+  /* On Linux, Mac OS X, *BSD, values of fd like 99 or 399 are discarded
+     by the kernel early and therefore do *not* lead to EBADF, as required
+     by POSIX.  */
+# if defined __linux__ || (defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined __NetBSD__
+  fd = 16;
+# else
+  fd = 99;
+# endif
+  close (fd);
+
+  if (do_select_bad_fd_nowait (fd, SEL_IN, my_select) == 0 || errno != EBADF)
+    failed ("invalid fd among rfds");
+  if (do_select_bad_fd_nowait (fd, SEL_OUT, my_select) == 0 || errno != EBADF)
+    failed ("invalid fd among wfds");
+  if (do_select_bad_fd_nowait (fd, SEL_EXC, my_select) == 0 || errno != EBADF)
+    failed ("invalid fd among xfds");
+#endif
+}
+
+
+/* Test select(2) for unconnected nonblocking sockets.  */
+
+static void
+test_connect_first (select_fn my_select)
+{
+  int s = open_server_socket ();
+  struct sockaddr_in ia;
+  socklen_t addrlen;
+
+  int c1, c2;
+
+  if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != 0)
+    failed ("can read, socket not connected");
+
+  c1 = connect_to_socket (false);
+
+  if (do_select_wait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN)
+    failed ("expecting readability on passive socket");
+  if (do_select_nowait (s, SEL_IN | SEL_EXC, my_select) != SEL_IN)
+    failed ("expecting readability on passive socket");
+
+  addrlen = sizeof (ia);
+  c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
+  ASSERT (close (s) == 0);
+  ASSERT (close (c1) == 0);
+  ASSERT (close (c2) == 0);
+}
+
+
+/* Test select(2) for unconnected blocking sockets.  */
+
+static void
+test_accept_first (select_fn my_select)
+{
+#ifndef WINDOWS_NATIVE
+  int s = open_server_socket ();
+  struct sockaddr_in ia;
+  socklen_t addrlen;
+  char buf[3];
+  int c, pid;
+
+  pid = fork ();
+  if (pid < 0)
+    return;
+
+  if (pid == 0)
+    {
+      addrlen = sizeof (ia);
+      c = accept (s, (struct sockaddr *) &ia, &addrlen);
+      ASSERT (close (s) == 0);
+      ASSERT (write (c, "foo", 3) == 3);
+      ASSERT (read (c, buf, 3) == 3);
+      shutdown (c, SHUT_RD);
+      ASSERT (close (c) == 0);
+      exit (0);
+    }
+  else
+    {
+      ASSERT (close (s) == 0);
+      c = connect_to_socket (true);
+      if (do_select_nowait (c, SEL_OUT, my_select) != SEL_OUT)
+        failed ("cannot write after blocking connect");
+      ASSERT (write (c, "foo", 3) == 3);
+      wait (&pid);
+      if (do_select_wait (c, SEL_IN, my_select) != SEL_IN)
+        failed ("cannot read data left in the socket by closed process");
+      ASSERT (read (c, buf, 3) == 3);
+      ASSERT (write (c, "foo", 3) == 3);
+      (void) close (c); /* may fail with errno = ECONNRESET */
+    }
+#endif
+}
+
+
+/* Common code for pipes and connected sockets.  */
+
+static void
+test_pair (int rd, int wd, select_fn my_select)
+{
+  char buf[3];
+  if (do_select_wait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT)
+    failed ("expecting writability before writing");
+  if (do_select_nowait (wd, SEL_IN | SEL_OUT | SEL_EXC, my_select) != SEL_OUT)
+    failed ("expecting writability before writing");
+
+  ASSERT (write (wd, "foo", 3) == 3);
+  if (do_select_wait (rd, SEL_IN, my_select) != SEL_IN)
+    failed ("expecting readability after writing");
+  if (do_select_nowait (rd, SEL_IN, my_select) != SEL_IN)
+    failed ("expecting readability after writing");
+
+  ASSERT (read (rd, buf, 3) == 3);
+}
+
+
+/* Test select(2) on connected sockets.  */
+
+static void
+test_socket_pair (select_fn my_select)
+{
+  struct sockaddr_in ia;
+
+  socklen_t addrlen = sizeof (ia);
+  int s = open_server_socket ();
+  int c1 = connect_to_socket (false);
+  int c2 = accept (s, (struct sockaddr *) &ia, &addrlen);
+
+  ASSERT (close (s) == 0);
+
+  test_pair (c1, c2, my_select);
+  ASSERT (close (c1) == 0);
+  ASSERT (write (c2, "foo", 3) == 3);
+  (void) close (c2); /* may fail with errno = ECONNRESET */
+}
+
+
+/* Test select(2) on pipes.  */
+
+static void
+test_pipe (select_fn my_select)
+{
+  int fd[2];
+
+  ASSERT (pipe (fd) == 0);
+  test_pair (fd[0], fd[1], my_select);
+  ASSERT (close (fd[0]) == 0);
+  ASSERT (close (fd[1]) == 0);
+}
+
+
+/* Do them all.  */
+
+static int
+test_function (select_fn my_select)
+{
+  int result = 0;
+
+#ifdef INTERACTIVE
+  printf ("Please press Enter\n");
+  test (test_tty, "TTY", my_select);
+#endif
+
+  result += test (test_bad_nfd, my_select, "Invalid nfd test");
+  result += test (test_bad_fd, my_select, "Invalid fd test");
+  result += test (test_connect_first, my_select, "Unconnected socket test");
+  result += test (test_socket_pair, my_select, "Connected sockets test");
+  result += test (test_accept_first, my_select, "General socket test with fork");
+  result += test (test_pipe, my_select, "Pipe test");
+
+  return result;
+}
index 0a53ac4..519dc27 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of setenv.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b20c037..143c0d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of setting the current locale.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -54,6 +54,8 @@ main (int argc, char *argv[])
 
   /* Test that the two results are the same.  */
   ASSERT (strcmp (name1, name2) == 0);
+  free (name1);
+  free (name2);
 
   return 0;
 }
index cad9e2f..52e65d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of setting the current locale.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-setsockopt.c b/gnulib-tests/test-setsockopt.c
new file mode 100644 (file)
index 0000000..4b73b82
--- /dev/null
@@ -0,0 +1,55 @@
+/* Test setsockopt() function.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (setsockopt, int, (int, int, int, const void *, socklen_t));
+
+#include <errno.h>
+#include <unistd.h>
+
+#include "sockets.h"
+#include "macros.h"
+
+int
+main (void)
+{
+  (void) gl_sockets_startup (SOCKETS_1_1);
+
+  /* Test behaviour for invalid file descriptors.  */
+  {
+    int value = 1;
+
+    errno = 0;
+    ASSERT (setsockopt (-1, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value))
+            == -1);
+    ASSERT (errno == EBADF);
+  }
+  {
+    int value = 1;
+
+    close (99);
+    errno = 0;
+    ASSERT (setsockopt (99, SOL_SOCKET, SO_REUSEADDR, &value, sizeof (value))
+            == -1);
+    ASSERT (errno == EBADF);
+  }
+
+  return 0;
+}
index 198d5fa..a2633ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of sh-quote module.
-   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2b5ba53..27c1ecc 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of sigaction() function.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 93c0b71..b050839 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <signal.h> substitute.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6aaf74d..e759bf1 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of sigprocmask.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d232cd0..64f681e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of sleep() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8057357..9041e4a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of snprintf() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ main (int argc, char *argv[])
 #if !CHECK_SNPRINTF_POSIX
           if (size > 0)
 #endif
-            ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+            ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
         }
       else
         {
diff --git a/gnulib-tests/test-sockets.c b/gnulib-tests/test-sockets.c
new file mode 100644 (file)
index 0000000..2836ed9
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2008-2016 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
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#include "sockets.h"
+
+int
+main (void)
+{
+  int err;
+
+  err = gl_sockets_startup (SOCKETS_1_1);
+  if (err != 0)
+    {
+      printf ("wsastartup failed %d\n", err);
+      return 1;
+    }
+
+  err = gl_sockets_cleanup ();
+  if (err != 0)
+    {
+      printf ("wsacleanup failed %d\n", err);
+      return 1;
+    }
+
+  (void) gl_fd_to_handle (0);
+
+  return 0;
+}
index 2b4f0f1..c60ee7a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stat-time.h>.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,6 +27,9 @@
 
 #include "macros.h"
 
+#define BASE "test-stat-time.t"
+#include "nap.h"
+
 enum { NFILES = 4 };
 
 static int
@@ -79,48 +82,6 @@ do_stat (const char *filename, struct stat *p)
   ASSERT (stat (filename, p) == 0);
 }
 
-/* Sleep long enough to notice a timestamp difference on the file
-   system in the current directory.  */
-static void
-nap (void)
-{
-  static long delay;
-  if (!delay)
-    {
-      /* Initialize only once, by sleeping for 20 milliseconds (needed
-         since xfs has a quantization of about 10 milliseconds, even
-         though it has a granularity of 1 nanosecond, and since NTFS
-         has a default quantization of 15.25 milliseconds, even though
-         it has a granularity of 100 nanoseconds).  If the seconds
-         differ, repeat the test one more time (in case we crossed a
-         quantization boundary on a file system with 1 second
-         resolution).  If we can't observe a difference in only the
-         nanoseconds, then fall back to 1 second if the time is odd,
-         and 2 seconds (needed for FAT) if time is even.  */
-      struct stat st1;
-      struct stat st2;
-      ASSERT (stat ("t-stt-stamp1", &st1) == 0);
-      ASSERT (force_unlink ("t-stt-stamp1") == 0);
-      delay = 20000;
-      usleep (delay);
-      create_file ("t-stt-stamp1");
-      ASSERT (stat ("t-stt-stamp1", &st2) == 0);
-      if (st1.st_mtime != st2.st_mtime)
-        {
-          /* Seconds differ, give it one more shot.  */
-          st1 = st2;
-          ASSERT (force_unlink ("t-stt-stamp1") == 0);
-          usleep (delay);
-          create_file ("t-stt-stamp1");
-          ASSERT (stat ("t-stt-stamp1", &st2) == 0);
-        }
-      if (! (st1.st_mtime == st2.st_mtime
-             && get_stat_mtime_ns (&st1) < get_stat_mtime_ns (&st2)))
-        delay = (st1.st_mtime & 1) ? 1000000 : 2000000;
-    }
-  usleep (delay);
-}
-
 static void
 prepare_test (struct stat *statinfo, struct timespec *modtimes)
 {
index b59dbf4..4510e59 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of stat.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -30,6 +30,7 @@ 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 5409e05..4cf6c6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of stat.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -95,6 +95,7 @@ test_stat_func (int (*func) (char const *, struct stat *), bool print)
   ASSERT (unlink (BASE "link2") == 0);
   ASSERT (unlink (BASE "link3") == 0);
   ASSERT (unlink (BASE "link4") == 0);
+  free (cwd);
 
   return 0;
 }
diff --git a/gnulib-tests/test-stdalign.c b/gnulib-tests/test-stdalign.c
new file mode 100644 (file)
index 0000000..0f240c5
--- /dev/null
@@ -0,0 +1,116 @@
+/* Test of <stdalign.h>.
+   Copyright 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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, inspired by Bruno Haible's test-alignof.c.  */
+
+#include <config.h>
+
+#include <stdalign.h>
+
+#include <stddef.h>
+#include <stdint.h>
+
+#include "verify.h"
+
+#include "macros.h"
+
+typedef long double longdouble;
+typedef struct { char a[1]; } struct1;
+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
+/* 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)
+# 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)); \
+  const int type##_alignment = alignof (type); \
+  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)
+
+CHECK_STATIC (char);
+CHECK_STATIC (short);
+CHECK_STATIC (int);
+CHECK_STATIC (long);
+#ifdef INT64_MAX
+CHECK_STATIC (int64_t);
+#endif
+CHECK_STATIC (float);
+CHECK_STATIC (double);
+/* CHECK_STATIC (longdouble); */
+CHECK_STATIC (struct1);
+CHECK_STATIC (struct2);
+CHECK_STATIC (struct3);
+CHECK_STATIC (struct4);
+
+int
+main ()
+{
+#if defined __SUNPRO_C
+  /* Avoid a test failure due to Sun Studio Developer Bug Report #2125432.  */
+  fputs ("Skipping test: known Sun C compiler bug\n", stderr);
+  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 3c13ca2..45dc837 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdbool.h> substitute.
-   Copyright (C) 2002-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f42b4e0..bfb72a0 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stddef.h> substitute.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include <config.h>
 
 #include <stddef.h>
-
+#include <stdalign.h>
 #include "verify.h"
 
 /* Check that appropriate types are defined.  */
 wchar_t a = 'c';
 ptrdiff_t b = 1;
 size_t c = 2;
+max_align_t x;
 
 /* Check that NULL can be passed through varargs as a pointer type,
    per POSIX 2008.  */
@@ -45,6 +46,26 @@ verify (sizeof (offsetof (struct d, e)) == sizeof (size_t));
 verify (offsetof (struct d, e) < -1); /* Must be unsigned.  */
 verify (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));
+#if defined __GNUC__ || 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));
+#endif
+
 int
 main (void)
 {
index 1c559b0..7705fc7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdint.h> substitute.
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 89c6548..6cde888 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdio.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6d38156..a1fc0d8 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <stdlib.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6d5db0f..80ffe1c 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of strerror() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-strerror_r.c b/gnulib-tests/test-strerror_r.c
new file mode 100644 (file)
index 0000000..cb773a3
--- /dev/null
@@ -0,0 +1,181 @@
+/* Test of strerror_r() function.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+#include <string.h>
+
+#include "signature.h"
+SIGNATURE_CHECK (strerror_r, int, (int, char *, size_t));
+
+#include <errno.h>
+
+#include "macros.h"
+
+int
+main (void)
+{
+  char buf[100];
+  int ret;
+
+  /* Test results with valid errnum and enough room.  */
+
+  errno = 0;
+  buf[0] = '\0';
+  ASSERT (strerror_r (EACCES, buf, sizeof buf) == 0);
+  ASSERT (buf[0] != '\0');
+  ASSERT (errno == 0);
+  ASSERT (strlen (buf) < sizeof buf);
+
+  errno = 0;
+  buf[0] = '\0';
+  ASSERT (strerror_r (ETIMEDOUT, buf, sizeof buf) == 0);
+  ASSERT (buf[0] != '\0');
+  ASSERT (errno == 0);
+  ASSERT (strlen (buf) < sizeof buf);
+
+  errno = 0;
+  buf[0] = '\0';
+  ASSERT (strerror_r (EOVERFLOW, buf, sizeof buf) == 0);
+  ASSERT (buf[0] != '\0');
+  ASSERT (errno == 0);
+  ASSERT (strlen (buf) < sizeof buf);
+
+  /* POSIX requires strerror (0) to succeed.  Reject use of "Unknown
+     error", but allow "Success", "No error", or even Solaris' "Error
+     0" which are distinct patterns from true out-of-range strings.
+     http://austingroupbugs.net/view.php?id=382  */
+  errno = 0;
+  buf[0] = '\0';
+  ret = strerror_r (0, buf, sizeof buf);
+  ASSERT (ret == 0);
+  ASSERT (buf[0]);
+  ASSERT (errno == 0);
+  ASSERT (strstr (buf, "nknown") == NULL);
+  ASSERT (strstr (buf, "ndefined") == NULL);
+
+  /* Test results with out-of-range errnum and enough room.  POSIX
+     allows an empty string on success, and allows an unchanged buf on
+     error, but these are not useful, so we guarantee contents.  */
+  errno = 0;
+  buf[0] = '^';
+  ret = strerror_r (-3, buf, sizeof buf);
+  ASSERT (ret == 0 || ret == EINVAL);
+  ASSERT (buf[0] != '^');
+  ASSERT (*buf);
+  ASSERT (errno == 0);
+  ASSERT (strlen (buf) < sizeof buf);
+
+  /* Test results with a too small buffer.  POSIX requires an error;
+     only ERANGE for 0 and valid errors, and a choice of ERANGE or
+     EINVAL for out-of-range values.  On error, POSIX permits buf to
+     be empty, unchanged, or unterminated, but these are not useful,
+     so we guarantee NUL-terminated truncated contents for all but
+     size 0.  http://austingroupbugs.net/view.php?id=398.  Also ensure
+     that no out-of-bounds writes occur.  */
+  {
+    int errs[] = { EACCES, 0, -3, };
+    int j;
+
+    buf[sizeof buf - 1] = '\0';
+    for (j = 0; j < SIZEOF (errs); j++)
+      {
+        int err = errs[j];
+        char buf2[sizeof buf] = "";
+        size_t len;
+        size_t i;
+
+        strerror_r (err, buf2, sizeof buf2);
+        len = strlen (buf2);
+        ASSERT (len < sizeof buf);
+
+        for (i = 0; i <= len; i++)
+          {
+            memset (buf, '^', sizeof buf - 1);
+            errno = 0;
+            ret = strerror_r (err, buf, i);
+            ASSERT (errno == 0);
+            if (err < 0)
+              ASSERT (ret == ERANGE || ret == EINVAL);
+            else
+              ASSERT (ret == ERANGE);
+            if (i)
+              {
+                ASSERT (strncmp (buf, buf2, i - 1) == 0);
+                ASSERT (buf[i - 1] == '\0');
+              }
+            ASSERT (strspn (buf + i, "^") == sizeof buf - 1 - i);
+          }
+
+        strcpy (buf, "BADFACE");
+        errno = 0;
+        ret = strerror_r (err, buf, len + 1);
+        ASSERT (ret != ERANGE);
+        ASSERT (errno == 0);
+        ASSERT (strcmp (buf, buf2) == 0);
+      }
+  }
+
+#if GNULIB_STRERROR
+  /* Test that strerror_r does not clobber strerror buffer.  On some
+     platforms, this test can only succeed if gnulib also replaces
+     strerror.  */
+  {
+    const char *msg1;
+    const char *msg2;
+    const char *msg3;
+    const char *msg4;
+    char *str1;
+    char *str2;
+    char *str3;
+    char *str4;
+
+    msg1 = strerror (ENOENT);
+    ASSERT (msg1);
+    str1 = strdup (msg1);
+    ASSERT (str1);
+
+    msg2 = strerror (ERANGE);
+    ASSERT (msg2);
+    str2 = strdup (msg2);
+    ASSERT (str2);
+
+    msg3 = strerror (-4);
+    ASSERT (msg3);
+    str3 = strdup (msg3);
+    ASSERT (str3);
+
+    msg4 = strerror (1729576);
+    ASSERT (msg4);
+    str4 = strdup (msg4);
+    ASSERT (str4);
+
+    strerror_r (EACCES, buf, sizeof buf);
+    strerror_r (-5, buf, sizeof buf);
+    ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1));
+    ASSERT (msg2 == msg4 || STREQ (msg2, str2));
+    ASSERT (msg3 == msg4 || STREQ (msg3, str3));
+    ASSERT (STREQ (msg4, str4));
+
+    free (str1);
+    free (str2);
+    free (str3);
+    free (str4);
+  }
+#endif
+
+  return 0;
+}
index 28bdaa9..39494e6 100644 (file)
@@ -1,5 +1,5 @@
 /* Test that posixtime works as required.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
 
 #include "strftime.h"
 
+#include <errno.h>
 #include <stdio.h>
 #include <time.h>
 #include <string.h>
@@ -42,8 +43,8 @@ static struct posixtm_test const T[] =
     { 0,          0,            NULL, NULL }
   };
 
-int
-main (void)
+static int
+posixtm_test (void)
 {
   int fail = 0;
   unsigned int i;
@@ -54,11 +55,10 @@ main (void)
       time_t t = T[i].in;
       struct tm *tm = gmtime (&t);
       size_t n;
-      int utc = 1;
 
       ASSERT (tm);
 
-      n = nstrftime (buf, sizeof buf, T[i].fmt, tm, utc, T[i].in_ns);
+      n = nstrftime (buf, sizeof buf, T[i].fmt, tm, 0, T[i].in_ns);
       if (n == 0)
         {
           fail = 1;
@@ -76,6 +76,139 @@ main (void)
   return fail;
 }
 
+struct tzalloc_test
+{
+  timezone_t tz;
+  char const *setting;
+};
+
+static struct tzalloc_test TZ[] =
+  {
+#define Pacific 0
+    { 0, "PST8PDT,M3.2.0,M11.1.0"      },
+#define Arizona 1
+    { 0, "MST7"                        },
+#define UTC 2
+    { 0, 0                             },
+#define CentEur 3
+    { 0, "CET-1CEST,M3.5.0,M10.5.0/3"  },
+#define Japan 4
+    { 0, "JST-9"                       },
+#define NZ 5
+    { 0, "NZST-12NZDT,M9.5.0,M4.1.0/3" },
+    { 0 }
+  };
+
+struct localtime_rz_test
+{
+  /* Input parameters.  */
+  struct tzalloc_test *tza;
+  time_t t;
+
+  /* Expected result.  */
+  char const *exp;
+
+  /* Determines if an incorrectly unset tm_isdst
+     results in failure or just a warning.  */
+  int ahistorical;
+};
+
+static struct localtime_rz_test LT[] =
+  {
+    { TZ+Pacific,          0, "1969-12-31 16:00:00 -0800 (PST)",  0 },
+    { TZ+Arizona,          0, "1969-12-31 17:00:00 -0700 (MST)",  0 },
+    { TZ+UTC    ,          0, "1970-01-01 00:00:00 +0000 (UTC)",  0 },
+    { TZ+CentEur,          0, "1970-01-01 01:00:00 +0100 (CET)",  0 },
+    { TZ+Japan  ,          0, "1970-01-01 09:00:00 +0900 (JST)",  0 },
+    { TZ+NZ     ,          0, "1970-01-01 13:00:00 +1300 (NZDT)", 1 },
+    { TZ+Pacific,  500000001, "1985-11-04 16:53:21 -0800 (PST)",  0 },
+    { TZ+Arizona,  500000001, "1985-11-04 17:53:21 -0700 (MST)",  0 },
+    { TZ+UTC    ,  500000001, "1985-11-05 00:53:21 +0000 (UTC)",  0 },
+    { TZ+CentEur,  500000001, "1985-11-05 01:53:21 +0100 (CET)",  1 },
+    { TZ+Japan  ,  500000001, "1985-11-05 09:53:21 +0900 (JST)",  0 },
+    { TZ+NZ     ,  500000001, "1985-11-05 13:53:21 +1300 (NZDT)", 0 },
+    { TZ+Pacific, 1000000002, "2001-09-08 18:46:42 -0700 (PDT)",  0 },
+    { TZ+Arizona, 1000000002, "2001-09-08 18:46:42 -0700 (MST)",  0 },
+    { TZ+UTC    , 1000000002, "2001-09-09 01:46:42 +0000 (UTC)",  0 },
+    { TZ+CentEur, 1000000002, "2001-09-09 03:46:42 +0200 (CEST)", 0 },
+    { TZ+Japan  , 1000000002, "2001-09-09 10:46:42 +0900 (JST)",  0 },
+    { TZ+NZ     , 1000000002, "2001-09-09 13:46:42 +1200 (NZST)", 0 },
+    { 0 }
+  };
+
+static int
+tzalloc_test (void)
+{
+  int fail = 0;
+  int i;
+
+  for (i = 0; LT[i].tza; i++)
+    {
+      struct tzalloc_test *tza = LT[i].tza;
+      long lt = LT[i].t;
+      timezone_t tz = tza->tz;
+      char const *setting;
+      static char const format[] = "%Y-%m-%d %H:%M:%S %z (%Z)";
+      char buf[1000];
+      struct tm tm;
+      size_t n;
+
+      if (!tz && tza->setting)
+        {
+          tz = tzalloc (tza->setting);
+          if (!tz)
+            {
+              fail = 1;
+              printf ("%s: tzalloc: %s\n", TZ[i].setting, strerror (errno));
+              continue;
+            }
+          tza->tz = tz;
+        }
+
+      setting = tza->setting ? tza->setting : "UTC0";
+
+      if (!localtime_rz (tz, &LT[i].t, &tm))
+        {
+          fail = 1;
+          printf ("%s: %ld: localtime_rz: %s\n", setting, lt,
+                  strerror (errno));
+          continue;
+        }
+
+      n = nstrftime (buf, sizeof buf, format, &tm, tz, 0);
+      if (n == 0)
+        {
+          fail = 1;
+          printf ("%s: %ld: nstrftime failed\n", setting, lt);
+          continue;
+        }
+
+      if (! (STREQ (buf, LT[i].exp)
+             || (!tz && n == strlen (LT[i].exp)
+                 && memcmp (buf, LT[i].exp, n - sizeof "(GMT)" + 1) == 0
+                 && STREQ (buf + n - sizeof "(GMT)" + 1, "(GMT)"))))
+        {
+          /* Don't fail for unhandled dst in ahistorical entries,
+             as gnulib doesn't currently fix that issue, seen on Darwin 14.  */
+          if (!LT[i].ahistorical || tm.tm_isdst)
+            fail = 1;
+          printf ("%s: expected \"%s\", got \"%s\"\n",
+                  setting, LT[i].exp, buf);
+        }
+    }
+
+  return fail;
+}
+
+int
+main (void)
+{
+  int fail = 0;
+  fail |= posixtm_test ();
+  fail |= tzalloc_test ();
+  return fail;
+}
+
 /*
 Local Variables:
 indent-tabs-mode: nil
index c77dc6c..9b71b69 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of character set conversion.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 76922d1..f4c60f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <string.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7873cfe..5eaa61a 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <strings.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 33de935..ee5bd78 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2010-2016 Free Software Foundation, Inc.
  * Written by Eric Blake
  *
  * This program is free software: you can redistribute it and/or modify
index e69be3d..6b1e01b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2016 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index fbacb72..bb9d30e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Free Software Foundation, Inc.
+ * Copyright (C) 2011-2016 Free Software Foundation, Inc.
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index 9966516..ad13b93 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 56cdc84..fc064e8 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of symlink.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-sys_ioctl.c b/gnulib-tests/test-sys_ioctl.c
new file mode 100644 (file)
index 0000000..8e0ddcd
--- /dev/null
@@ -0,0 +1,27 @@
+/* Test of <sys/ioctl.h> substitute.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Eric Blake <ebb9@byu.net>, 2009.  */
+
+#include <config.h>
+
+#include <sys/ioctl.h>
+
+int
+main (void)
+{
+  return 0;
+}
diff --git a/gnulib-tests/test-sys_select.c b/gnulib-tests/test-sys_select.c
new file mode 100644 (file)
index 0000000..39a878f
--- /dev/null
@@ -0,0 +1,59 @@
+/* Test of <sys/select.h> substitute.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <sys/select.h>
+
+#include "signature.h"
+
+/* The following may be macros without underlying functions, so only
+   check signature if they are not macros.  */
+#ifndef FD_CLR
+SIGNATURE_CHECK (FD_CLR, void, (int, fd_set *));
+#endif
+#ifndef FD_ISSET
+SIGNATURE_CHECK (FD_ISSET, void, (int, fd_set *));
+#endif
+#ifndef FD_SET
+SIGNATURE_CHECK (FD_SET, int, (int, fd_set *));
+#endif
+#ifndef FD_ZERO
+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)
+{
+  /* Check that FD_ZERO can be used.  This should not yield a warning
+     such as "warning: implicit declaration of function 'memset'".  */
+  fd_set fds;
+  FD_ZERO (&fds);
+
+  return 0;
+}
diff --git a/gnulib-tests/test-sys_socket.c b/gnulib-tests/test-sys_socket.c
new file mode 100644 (file)
index 0000000..a4f7108
--- /dev/null
@@ -0,0 +1,68 @@
+/* Test of <sys/socket.h> substitute.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
+
+#include <config.h>
+
+#include <sys/socket.h>
+
+#include <errno.h>
+
+#if HAVE_SHUTDOWN
+/* Check some integer constant expressions.  */
+int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
+#endif
+
+/* Check that the 'socklen_t' type is defined.  */
+socklen_t t1;
+
+/* Check that the 'size_t' and 'ssize_t' types are defined.  */
+size_t t2;
+ssize_t t3;
+
+/* Check that 'struct iovec' is defined.  */
+struct iovec io;
+
+/* Check that a minimal set of 'struct msghdr' is defined.  */
+struct msghdr msg;
+
+int
+main (void)
+{
+  struct sockaddr_storage x;
+  sa_family_t i;
+
+  /* Check some errno values.  */
+  switch (ENOTSOCK)
+    {
+    case ENOTSOCK:
+    case EADDRINUSE:
+    case ENETRESET:
+    case ECONNABORTED:
+    case ECONNRESET:
+    case ENOTCONN:
+    case ESHUTDOWN:
+      break;
+    }
+
+  x.ss_family = 42;
+  i = 42;
+  msg.msg_iov = &io;
+
+  return (x.ss_family - i + msg.msg_namelen + msg.msg_iov->iov_len
+          + msg.msg_iovlen);
+}
index 1ce3581..8a3af94 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/stat.h> substitute.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1389b52..44535b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/time.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This 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,8 +23,9 @@
 /* Check that the 'struct timeval' type is defined.  */
 struct timeval a;
 
-/* Check that &a.tv_sec is a 'time_t *', ignoring signedness issues.  */
-typedef int verify_tv_sec_type[sizeof (a.tv_sec) == sizeof (time_t) ? 1 : -1];
+/* 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];
 
 int
 main (void)
index 1045de7..7f8fb6d 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/types.h> substitute.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-sys_uio.c b/gnulib-tests/test-sys_uio.c
new file mode 100644 (file)
index 0000000..c433847
--- /dev/null
@@ -0,0 +1,32 @@
+/* Test of <sys/uio.h> substitute.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Eric Blake <eblake@redhat.com>, 2011.  */
+
+#include <config.h>
+
+#include <sys/uio.h>
+
+/* Check that necessary types are defined.  */
+size_t a;
+ssize_t b;
+struct iovec c;
+
+int
+main (void)
+{
+  return a + b + !!c.iov_base + c.iov_len;
+}
index 4dd2130..f814ff3 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <sys/wait.h> substitute.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -31,17 +31,17 @@ main (void)
   if (test_sys_wait_macros ())
     return 1;
 
-  switch (0)
-    {
 #if 0
+  switch (WCONTINUED)
+    {
   /* Gnulib doesn't guarantee these, yet.  */
     case WCONTINUED:
     case WEXITED:
     case WNOWAIT:
     case WSTOPPED:
-#endif
       break;
     }
+#endif
 
   return a ? 1 : 0;
 }
index d78b19e..7389be4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of macros shared between <sys/wait.h> and <stdlib.h>.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c060136..dec2b13 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <time.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free 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/test-timespec.c b/gnulib-tests/test-timespec.c
new file mode 100644 (file)
index 0000000..3ea6e2d
--- /dev/null
@@ -0,0 +1,167 @@
+/* Test timespec functions.
+   Copyright 2015-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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.  */
+
+#include <config.h>
+
+#include "timespec.h"
+
+#include "intprops.h"
+#include "macros.h"
+
+#include <stdbool.h>
+#include <limits.h>
+
+static struct { int s; int ns; } const prototype[] =
+  {
+    { INT_MIN, 0 },
+    { INT_MIN, 1 },
+    { INT_MIN, TIMESPEC_RESOLUTION - 1 },
+    { INT_MIN + 1, 0 },
+    { INT_MIN + 1, 1 },
+    { INT_MIN + 1, TIMESPEC_RESOLUTION - 1 },
+    { -1, 0 },
+    { -1, 1 },
+    { -1, TIMESPEC_RESOLUTION - 1 },
+    { 0, 0 },
+    { 0, 1 },
+    { 0, TIMESPEC_RESOLUTION - 1 },
+    { 1, 0 },
+    { 1, 1 },
+    { 1, TIMESPEC_RESOLUTION - 1 },
+    { 1234567890, 0 },
+    { 1234567890, 1 },
+    { 1234567890, TIMESPEC_RESOLUTION - 1 },
+    { INT_MAX - 1, 0 },
+    { INT_MAX - 1, 1 },
+    { INT_MAX - 1, TIMESPEC_RESOLUTION - 1 },
+    { INT_MAX, 0 },
+    { INT_MAX, 1 },
+    { INT_MAX, TIMESPEC_RESOLUTION - 1 },
+    { INT_MAX, 2 * TIMESPEC_RESOLUTION }
+  };
+enum { nprototypes = sizeof prototype / sizeof *prototype };
+
+static bool
+valid (struct timespec a)
+{
+  return 0 <= a.tv_nsec && a.tv_nsec < TIMESPEC_RESOLUTION;
+}
+
+static int
+sign (int i)
+{
+  return i < 0 ? -1 : 0 < i;
+}
+
+static int
+cmp (struct timespec a, struct timespec b)
+{
+  return sign (timespec_cmp (a, b));
+}
+
+static bool
+eq (struct timespec a, struct timespec b)
+{
+  return timespec_cmp (a, b) == 0;
+}
+
+static bool
+extremal (struct timespec a)
+{
+  return ((a.tv_sec == TYPE_MINIMUM (time_t) && a.tv_nsec == 0)
+         || (a.tv_sec == TYPE_MAXIMUM (time_t)
+             && a.tv_nsec == TIMESPEC_RESOLUTION - 1));
+}
+
+int
+main (void)
+{
+  int i, j, k;
+  struct timespec test[nprototypes + 1];
+  int ntests;
+  int computed_resolution = 1;
+  struct timespec prevroundtrip;
+
+  test[0] = make_timespec (TYPE_MINIMUM (time_t), -1);
+  ntests = 1;
+  for (i = 0; i < nprototypes; i++)
+    {
+      int s = prototype[i].s;
+      if (TYPE_SIGNED (time_t) || 0 <= s)
+       {
+         time_t t = (s <= INT_MIN + 1 ? s - INT_MIN + TYPE_MINIMUM (time_t)
+                     : INT_MAX - 1 <= s ? s - INT_MAX + TYPE_MAXIMUM (time_t)
+                     : s);
+         test[ntests++] = make_timespec (t, prototype[i].ns);
+       }
+    }
+
+  for (i = 0; i < LOG10_TIMESPEC_RESOLUTION; i++)
+    computed_resolution *= 10;
+  ASSERT (computed_resolution == TIMESPEC_RESOLUTION);
+
+  for (i = 0; i < ntests; i++)
+    {
+      struct timespec a = test[i];
+
+      struct timespec roundtrip = dtotimespec (timespectod (a));
+      if (i != 0)
+        ASSERT (cmp (prevroundtrip, roundtrip) <= 0);
+      prevroundtrip = roundtrip;
+
+      ASSERT (sign (timespec_sign (a)) == cmp (a, make_timespec (0, 0)));
+
+      if (valid (a))
+       for (j = 0; j < ntests; j++)
+         {
+           struct timespec b = test[j];
+           if (valid (b))
+             {
+               struct timespec sum = timespec_add (a, b);
+               struct timespec diff = timespec_sub (a, b);
+               struct timespec rdiff = timespec_sub (b, a);
+               ASSERT (cmp (a, b) == sign (i - j));
+               ASSERT (eq (sum, timespec_add (b, a)));
+               if (! extremal (sum))
+                 {
+                   ASSERT (eq (a, timespec_sub (sum, b)));
+                   ASSERT (eq (b, timespec_sub (sum, a)));
+
+                   for (k = 0; k < ntests; k++)
+                     {
+                       struct timespec c = test[k];
+                       if (valid (c))
+                         {
+                           struct timespec sumbc = timespec_add (b, c);
+                           if (! extremal (sumbc))
+                             ASSERT (eq (timespec_add (a, sumbc),
+                                         timespec_add (sum, c)));
+                         }
+                     }
+                 }
+               if (! extremal (diff))
+                 ASSERT (eq (a, timespec_add (diff, b)));
+               if (! extremal (rdiff))
+                 ASSERT (eq (b, timespec_add (rdiff, a)));
+
+             }
+         }
+    }
+
+  return 0;
+}
index 5470985..463ef57 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <unistd.h> substitute.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c369e2a..fe4548d 100644 (file)
@@ -1,5 +1,5 @@
 /* Tests of unsetenv.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 60cb372..cd4886a 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Test suite for update-copyright.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
@@ -37,7 +37,7 @@ trap 'rm -f $TMP_BASE*' 0 1 2 3 15
 TMP=$TMP_BASE
 s=$TMP-script
 cat <<\EOF > $s
-eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}'
+eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" "$@"'
   & eval 'exec perl -wS -0777 -pi "$0" $argv:q'
     if 0;
 s/a/b/
index f29b05a..a75c004 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of vasnprintf() and asnprintf() functions.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -55,7 +55,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       ASSERT (length == 5);
       if (size < 6)
         ASSERT (result != buf);
-      ASSERT (memcmp (buf + size, "DEADBEEF" + size, 8 - size) == 0);
+      ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0);
       if (result != buf)
         free (result);
     }
index 459b92d..ebcbfc4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of vasprintf() and asprintf() functions.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1dbc532..6262944 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 8cbd00b..4358115 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Unit tests for vc-list-files
-# Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 1056b4e..d7ca053 100644 (file)
@@ -1,6 +1,6 @@
 /* Test the "verify" module.
 
-   Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 66027f3..4382c76 100644 (file)
@@ -1,5 +1,5 @@
 /* Test suite for version-etc.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNUlib Library.
 
    This program is free software: you can redistribute it and/or modify
index 466c959..1706aef 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Test suite for version-etc.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index 92ae8f2..e118048 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <wchar.h> substitute.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 494bbd1..0570c73 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of wide character to multibyte character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c076973..e1d2bb4 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of conversion of wide character to multibyte character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5ab5d0c..b401091 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of <wctype.h> substitute.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6d85665..5a0d853 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of wcwidth() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e6376f8..9329750 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of xalloc_die() function.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 920d222..fba601f 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 # Test suite for xalloc_die.
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 # This file is part of the GNUlib Library.
 #
 # This program is free software: you can redistribute it and/or modify
index c07e295..fef45e5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of xstrtol module.
-   Copyright (C) 1995-1996, 1998-2001, 2003-2013 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 1998-2001, 2003-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f718d8f..5425bc7 100755 (executable)
@@ -16,6 +16,7 @@ test-xstrtol 9x >> out 2>&1 && result=1
 test-xstrtol 010 >> out 2>&1 || result=1
 # suffix without integer is valid
 test-xstrtol MiB >> out 2>&1 || result=1
+test-xstrtol 1bB >> out 2>&1 && result=1
 
 # test xstrtoul
 test-xstrtoul 1 >> out 2>&1 || result=1
@@ -27,6 +28,7 @@ test-xstrtoul x >> out 2>&1 && result=1
 test-xstrtoul 9x >> out 2>&1 && result=1
 test-xstrtoul 010 >> out 2>&1 || result=1
 test-xstrtoul MiB >> out 2>&1 || result=1
+test-xstrtoul 1bB >> out 2>&1 && result=1
 
 # Find out how to remove carriage returns from output. Solaris /usr/ucb/tr
 # does not understand '\r'.
@@ -51,6 +53,7 @@ invalid X argument 'x'
 invalid suffix in X argument '9x'
 010->8 ()
 MiB->1048576 ()
+invalid suffix in X argument '1bB'
 1->1 ()
 invalid X argument '-1'
 1k->1024 ()
@@ -60,6 +63,7 @@ invalid X argument 'x'
 invalid suffix in X argument '9x'
 010->8 ()
 MiB->1048576 ()
+invalid suffix in X argument '1bB'
 EOF
 
 compare expected out || result=1
index 0a2f1b8..985fe2e 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of xvasprintf() and xasprintf() functions.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
+/* 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"
@@ -93,9 +100,11 @@ test_xasprintf (void)
     }
 
   {
-    /* Silence gcc warning about zero-length format string.  */
+    /* 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);
+    result = xasprintf (empty, empty);
     ASSERT (result != NULL);
     ASSERT (strcmp (result, "") == 0);
     free (result);
diff --git a/gnulib-tests/timespec-add.c b/gnulib-tests/timespec-add.c
new file mode 100644 (file)
index 0000000..b093946
--- /dev/null
@@ -0,0 +1,71 @@
+/* Add two struct timespec values.
+
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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.  */
+
+/* Return the sum of two timespec values A and B.  On overflow, return
+   an extremal value.  This assumes 0 <= tv_nsec < TIMESPEC_RESOLUTION.  */
+
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_add (struct timespec a, struct timespec b)
+{
+  time_t rs = a.tv_sec;
+  time_t bs = b.tv_sec;
+  int ns = a.tv_nsec + b.tv_nsec;
+  int nsd = ns - TIMESPEC_RESOLUTION;
+  int rns = ns;
+  time_t tmin = TYPE_MINIMUM (time_t);
+  time_t tmax = TYPE_MAXIMUM (time_t);
+
+  if (0 <= nsd)
+    {
+      rns = nsd;
+      if (bs < tmax)
+        bs++;
+      else if (rs < 0)
+        rs++;
+      else
+        goto high_overflow;
+    }
+
+  /* INT_ADD_WRAPV is not appropriate since time_t might be unsigned.
+     In theory time_t might be narrower than int, so plain
+     INT_ADD_OVERFLOW does not suffice.  */
+  if (! INT_ADD_OVERFLOW (rs, bs) && tmin <= rs + bs && rs + bs <= tmax)
+    rs += bs;
+  else
+    {
+      if (rs < 0)
+        {
+          rs = tmin;
+          rns = 0;
+        }
+      else
+        {
+        high_overflow:
+          rs = tmax;
+          rns = TIMESPEC_RESOLUTION - 1;
+        }
+    }
+
+  return make_timespec (rs, rns);
+}
diff --git a/gnulib-tests/timespec-sub.c b/gnulib-tests/timespec-sub.c
new file mode 100644 (file)
index 0000000..63cc142
--- /dev/null
@@ -0,0 +1,71 @@
+/* Subtract two struct timespec values.
+
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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.  */
+
+/* Return the difference between two timespec values A and B.  On
+   overflow, return an extremal value.  This assumes 0 <= tv_nsec <
+   TIMESPEC_RESOLUTION.  */
+
+#include <config.h>
+#include "timespec.h"
+
+#include "intprops.h"
+
+struct timespec
+timespec_sub (struct timespec a, struct timespec b)
+{
+  time_t rs = a.tv_sec;
+  time_t bs = b.tv_sec;
+  int ns = a.tv_nsec - b.tv_nsec;
+  int rns = ns;
+  time_t tmin = TYPE_MINIMUM (time_t);
+  time_t tmax = TYPE_MAXIMUM (time_t);
+
+  if (ns < 0)
+    {
+      rns = ns + TIMESPEC_RESOLUTION;
+      if (bs < tmax)
+        bs++;
+      else if (- TYPE_SIGNED (time_t) < rs)
+        rs--;
+      else
+        goto low_overflow;
+    }
+
+  /* INT_SUBTRACT_WRAPV is not appropriate since time_t might be unsigned.
+     In theory time_t might be narrower than int, so plain
+     INT_SUBTRACT_OVERFLOW does not suffice.  */
+  if (! INT_SUBTRACT_OVERFLOW (rs, bs) && tmin <= rs - bs && rs - bs <= tmax)
+    rs -= bs;
+  else
+    {
+      if (rs < 0)
+        {
+        low_overflow:
+          rs = tmin;
+          rns = 0;
+        }
+      else
+        {
+          rs = tmax;
+          rns = TIMESPEC_RESOLUTION - 1;
+        }
+    }
+
+  return make_timespec (rs, rns);
+}
index 763d931..7a7b0b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_mbtoucr() function.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b0ecb30..bbc9418 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of u8_uctomb() function.
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 43d9d10..8c248fa 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 623f32c..60ef755 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of uc_width() function.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9307f33..1463d34 100755 (executable)
@@ -28,10 +28,12 @@ cat > uc_width.ok <<\EOF
 05C6           A
 05C7           0
 05C8..05FF     A
-0600..0603     0
-0604..060F     A
+0600..0605     0
+0606..060F     A
 0610..061A     0
-061B..064A     A
+061B           A
+061C           0
+061D..064A     A
 064B..065F     0
 0660..066F     A
 0670           0
@@ -63,8 +65,8 @@ cat > uc_width.ok <<\EOF
 0829..082D     0
 082E..0858     A
 0859..085B     0
-085C..08FF     A
-0900..0902     0
+085C..08E2     A
+08E3..0902     0
 0903..0939     A
 093A           0
 093B           A
@@ -135,7 +137,9 @@ cat > uc_width.ok <<\EOF
 0BC0           0
 0BC1..0BCC     A
 0BCD           0
-0BCE..0C3D     A
+0BCE..0BFF     A
+0C00           0
+0C01..0C3D     A
 0C3E..0C40     0
 0C41..0C45     A
 0C46..0C48     0
@@ -145,13 +149,17 @@ cat > uc_width.ok <<\EOF
 0C55..0C56     0
 0C57..0C61     A
 0C62..0C63     0
-0C64..0CBB     A
+0C64..0C80     A
+0C81           0
+0C82..0CBB     A
 0CBC           0
 0CBD..0CCB     A
 0CCC..0CCD     0
 0CCE..0CE1     A
 0CE2..0CE3     0
-0CE4..0D40     A
+0CE4..0D00     A
+0D01           0
+0D02..0D40     A
 0D41..0D44     0
 0D45..0D4C     A
 0D4D           0
@@ -242,8 +250,8 @@ cat > uc_width.ok <<\EOF
 17D4..17DC     A
 17DD           0
 17DE..180A     A
-180B..180D     0
-180E..18A8     A
+180B..180E     0
+180F..18A8     A
 18A9           0
 18AA..191F     A
 1920..1922     0
@@ -255,7 +263,9 @@ cat > uc_width.ok <<\EOF
 1939..193B     0
 193C..1A16     A
 1A17..1A18     0
-1A19..1A55     A
+1A19..1A1A     A
+1A1B           0
+1A1C..1A55     A
 1A56           0
 1A57           A
 1A58..1A5E     0
@@ -269,7 +279,9 @@ cat > uc_width.ok <<\EOF
 1A73..1A7C     0
 1A7D..1A7E     A
 1A7F           0
-1A80..1AFF     A
+1A80..1AAF     A
+1AB0..1ABE     0
+1ABF..1AFF     A
 1B00..1B03     0
 1B04..1B33     A
 1B34           0
@@ -287,7 +299,9 @@ cat > uc_width.ok <<\EOF
 1BA2..1BA5     0
 1BA6..1BA7     A
 1BA8..1BA9     0
-1BAA..1BE5     A
+1BAA           A
+1BAB..1BAD     0
+1BAE..1BE5     A
 1BE6           0
 1BE7           A
 1BE8..1BE9     0
@@ -307,9 +321,13 @@ cat > uc_width.ok <<\EOF
 1CE2..1CE8     0
 1CE9..1CEC     A
 1CED           0
-1CEE..1DBF     A
-1DC0..1DE6     0
-1DE7..1DFB     A
+1CEE..1CF3     A
+1CF4           0
+1CF5..1CF7     A
+1CF8..1CF9     0
+1CFA..1DBF     A
+1DC0..1DF5     0
+1DF6..1DFB     A
 1DFC..1DFF     0
 1E00..200A     A
 200B..200F     0
@@ -317,8 +335,8 @@ cat > uc_width.ok <<\EOF
 202A..202E     0
 202F..205F     A
 2060..2064     0
-2065..2069     A
-206A..206F     0
+2065           A
+2066..206F     0
 2070..20A8     A
 20A9           1
 20AA..20CF     A
@@ -333,8 +351,8 @@ cat > uc_width.ok <<\EOF
 2DE0..2DFF     0
 2E00..2E7F     A
 2E80..3029     2
-302A..302F     0
-3030..303E     2
+302A..302D     0
+302E..303E     2
 303F           A
 3040..3098     2
 3099..309A     0
@@ -343,9 +361,11 @@ cat > uc_width.ok <<\EOF
 4E00..A4CF     2
 A4D0..A66E     A
 A66F..A672     0
-A673..A67B     A
-A67C..A67D     0
-A67E..A6EF     A
+A673           A
+A674..A67D     0
+A67E..A69D     A
+A69E..A69F     0
+A6A0..A6EF     A
 A6F0..A6F1     0
 A6F2..A801     A
 A802           0
@@ -371,7 +391,9 @@ A9B4..A9B5  A
 A9B6..A9B9     0
 A9BA..A9BB     A
 A9BC           0
-A9BD..AA28     A
+A9BD..A9E4     A
+A9E5           0
+A9E6..AA28     A
 AA29..AA2E     0
 AA2F..AA30     A
 AA31..AA32     0
@@ -381,7 +403,9 @@ AA37..AA42  A
 AA43           0
 AA44..AA4B     A
 AA4C           0
-AA4D..AAAF     A
+AA4D..AA7B     A
+AA7C           0
+AA7D..AAAF     A
 AAB0           0
 AAB1           A
 AAB2..AAB4     0
@@ -391,7 +415,11 @@ AAB9..AABD A
 AABE..AABF     0
 AAC0           A
 AAC1           0
-AAC2..ABE4     A
+AAC2..AAEB     A
+AAEC..AAED     0
+AAEE..AAF5     A
+AAF6           0
+AAF7..ABE4     A
 ABE5           0
 ABE6..ABE7     A
 ABE8           0
@@ -406,8 +434,7 @@ FB1E                0
 FB1F..FDFF     A
 FE00..FE0F     0
 FE10..FE1F     2
-FE20..FE26     0
-FE27..FE2F     A
+FE20..FE2F     0
 FE30..FE6F     2
 FE70..FEFE     A
 FEFF           0
@@ -418,7 +445,11 @@ FFE7..FFF8 1
 FFF9..FFFB     0
 FFFC..101FC    1
 101FD          0
-101FE..10A00   1
+101FE..102DF   1
+102E0          0
+102E1..10375   1
+10376..1037A   0
+1037B..10A00   1
 10A01..10A03   0
 10A04          1
 10A05..10A06   0
@@ -428,19 +459,101 @@ FFFC..101FC      1
 10A38..10A3A   0
 10A3B..10A3E   1
 10A3F          0
-10A40..11000   1
+10A40..10AE4   1
+10AE5..10AE6   0
+10AE7..11000   1
 11001          0
 11002..11037   1
 11038..11046   0
-11047..1107F   1
-11080..11081   0
+11047..1107E   1
+1107F..11081   0
 11082..110B2   1
 110B3..110B6   0
 110B7..110B8   1
 110B9..110BA   0
 110BB..110BC   1
 110BD          0
-110BE..1D166   1
+110BE..110FF   1
+11100..11102   0
+11103..11126   1
+11127..1112B   0
+1112C          1
+1112D..11134   0
+11135..11172   1
+11173          0
+11174..1117F   1
+11180..11181   0
+11182..111B5   1
+111B6..111BE   0
+111BF..111C9   1
+111CA..111CC   0
+111CD..1122E   1
+1122F..11231   0
+11232..11233   1
+11234          0
+11235          1
+11236..11237   0
+11238..112DE   1
+112DF          0
+112E0..112E2   1
+112E3..112EA   0
+112EB..112FF   1
+11300..11301   0
+11302..1133B   1
+1133C          0
+1133D..1133F   1
+11340          0
+11341..11365   1
+11366..1136C   0
+1136D..1136F   1
+11370..11374   0
+11375..114B2   1
+114B3..114B8   0
+114B9          1
+114BA          0
+114BB..114BE   1
+114BF..114C0   0
+114C1          1
+114C2..114C3   0
+114C4..115B1   1
+115B2..115B5   0
+115B6..115BB   1
+115BC..115BD   0
+115BE          1
+115BF..115C0   0
+115C1..115DB   1
+115DC..115DD   0
+115DE..11632   1
+11633..1163A   0
+1163B..1163C   1
+1163D          0
+1163E          1
+1163F..11640   0
+11641..116AA   1
+116AB          0
+116AC          1
+116AD          0
+116AE..116AF   1
+116B0..116B5   0
+116B6          1
+116B7          0
+116B8..1171C   1
+1171D..1171F   0
+11720..11721   1
+11722..11725   0
+11726          1
+11727..1172B   0
+1172C..16AEF   1
+16AF0..16AF4   0
+16AF5..16B2F   1
+16B30..16B36   0
+16B37..16F8E   1
+16F8F..16F92   0
+16F93..1BC9C   1
+1BC9D..1BC9E   0
+1BC9F          1
+1BCA0..1BCA3   0
+1BCA4..1D166   1
 1D167..1D169   0
 1D16A..1D172   1
 1D173..1D182   0
@@ -450,7 +563,21 @@ FFFC..101FC        1
 1D1AA..1D1AD   0
 1D1AE..1D241   1
 1D242..1D244   0
-1D245..1FFFF   1
+1D245..1D9FF   1
+1DA00..1DA36   0
+1DA37..1DA3A   1
+1DA3B..1DA6C   0
+1DA6D..1DA74   1
+1DA75          0
+1DA76..1DA83   1
+1DA84          0
+1DA85..1DA9A   1
+1DA9B..1DA9F   0
+1DAA0          1
+1DAA1..1DAAF   0
+1DAB0..1E8CF   1
+1E8D0..1E8D6   0
+1E8D7..1FFFF   1
 20000..3FFFF   2
 40000..E0000   1
 E0001          0
diff --git a/gnulib-tests/usleep.c b/gnulib-tests/usleep.c
deleted file mode 100644 (file)
index 008cc1f..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Pausing execution of the current thread.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
-   Written by Eric Blake <ebb9@byu.net>, 2009.
-
-   This program is free software: you can redistribute it and/or modify
-   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/>.  */
-
-/* This file is _intentionally_ light-weight.  Rather than using
-   select or nanosleep, both of which drag in external libraries on
-   some platforms, this merely rounds up to the nearest second if
-   usleep() does not exist.  If sub-second resolution is important,
-   then use a more powerful interface to begin with.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include <unistd.h>
-
-#include <errno.h>
-
-#ifndef HAVE_USLEEP
-# define HAVE_USLEEP 0
-#endif
-
-/* Sleep for MICRO microseconds, which can be greater than 1 second.
-   Return -1 and set errno to EINVAL on range error (about 4295
-   seconds), or 0 on success.  Interaction with SIGALARM is
-   unspecified.  */
-
-int
-usleep (useconds_t micro)
-{
-  unsigned int seconds = micro / 1000000;
-  if (sizeof seconds < sizeof micro && micro / 1000000 != seconds)
-    {
-      errno = EINVAL;
-      return -1;
-    }
-  if (!HAVE_USLEEP && micro % 1000000)
-    seconds++;
-  while ((seconds = sleep (seconds)) != 0);
-
-#undef usleep
-#if !HAVE_USLEEP
-# define usleep(x) 0
-#endif
-  return usleep (micro % 1000000);
-}
diff --git a/gnulib-tests/w32sock.h b/gnulib-tests/w32sock.h
new file mode 100644 (file)
index 0000000..c78b4bb
--- /dev/null
@@ -0,0 +1,136 @@
+/* w32sock.h --- internal auxiliary functions for Windows socket functions
+
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paolo Bonzini */
+
+#include <errno.h>
+
+/* Get O_RDWR and O_BINARY.  */
+#include <fcntl.h>
+
+/* Get _open_osfhandle().  */
+#include <io.h>
+
+/* Get _get_osfhandle().  */
+#include "msvc-nothrow.h"
+
+#define FD_TO_SOCKET(fd)   ((SOCKET) _get_osfhandle ((fd)))
+#define SOCKET_TO_FD(fh)   (_open_osfhandle ((intptr_t) (fh), O_RDWR | O_BINARY))
+
+static inline void
+set_winsock_errno (void)
+{
+  int err = WSAGetLastError ();
+
+  /* Map some WSAE* errors to the runtime library's error codes.  */
+  switch (err)
+    {
+    case WSA_INVALID_HANDLE:
+      errno = EBADF;
+      break;
+    case WSA_NOT_ENOUGH_MEMORY:
+      errno = ENOMEM;
+      break;
+    case WSA_INVALID_PARAMETER:
+      errno = EINVAL;
+      break;
+    case WSAENAMETOOLONG:
+      errno = ENAMETOOLONG;
+      break;
+    case WSAENOTEMPTY:
+      errno = ENOTEMPTY;
+      break;
+    case WSAEWOULDBLOCK:
+      errno = EWOULDBLOCK;
+      break;
+    case WSAEINPROGRESS:
+      errno = EINPROGRESS;
+      break;
+    case WSAEALREADY:
+      errno = EALREADY;
+      break;
+    case WSAENOTSOCK:
+      errno = ENOTSOCK;
+      break;
+    case WSAEDESTADDRREQ:
+      errno = EDESTADDRREQ;
+      break;
+    case WSAEMSGSIZE:
+      errno = EMSGSIZE;
+      break;
+    case WSAEPROTOTYPE:
+      errno = EPROTOTYPE;
+      break;
+    case WSAENOPROTOOPT:
+      errno = ENOPROTOOPT;
+      break;
+    case WSAEPROTONOSUPPORT:
+      errno = EPROTONOSUPPORT;
+      break;
+    case WSAEOPNOTSUPP:
+      errno = EOPNOTSUPP;
+      break;
+    case WSAEAFNOSUPPORT:
+      errno = EAFNOSUPPORT;
+      break;
+    case WSAEADDRINUSE:
+      errno = EADDRINUSE;
+      break;
+    case WSAEADDRNOTAVAIL:
+      errno = EADDRNOTAVAIL;
+      break;
+    case WSAENETDOWN:
+      errno = ENETDOWN;
+      break;
+    case WSAENETUNREACH:
+      errno = ENETUNREACH;
+      break;
+    case WSAENETRESET:
+      errno = ENETRESET;
+      break;
+    case WSAECONNABORTED:
+      errno = ECONNABORTED;
+      break;
+    case WSAECONNRESET:
+      errno = ECONNRESET;
+      break;
+    case WSAENOBUFS:
+      errno = ENOBUFS;
+      break;
+    case WSAEISCONN:
+      errno = EISCONN;
+      break;
+    case WSAENOTCONN:
+      errno = ENOTCONN;
+      break;
+    case WSAETIMEDOUT:
+      errno = ETIMEDOUT;
+      break;
+    case WSAECONNREFUSED:
+      errno = ECONNREFUSED;
+      break;
+    case WSAELOOP:
+      errno = ELOOP;
+      break;
+    case WSAEHOSTUNREACH:
+      errno = EHOSTUNREACH;
+      break;
+    default:
+      errno = (err > 10000 && err < 10025) ? err - 10000 : err;
+      break;
+    }
+}
index 508f896..15e3ff3 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to unibyte character.
-   Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 60dc3b9..a6ed971 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index 3761108..f1d14f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index f0e6155..e6ff672 100644 (file)
@@ -1,5 +1,5 @@
 /* Return a pointer to a zero-size object in memory.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2e98878..8542af7 100644 (file)
@@ -1,6 +1,7 @@
 # Automakefile for GNU Diffutils library.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free Software
+# Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 7916a23..2f8ff31 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 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,8 @@
 
 # Automakefile for GNU Diffutils library.
 
-# Copyright (C) 2001-2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2004, 2006, 2009-2013, 2015-2016 Free Software
+# Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -31,7 +32,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 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 same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
+# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen argmatch binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes isblank largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername rawmemchr readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -90,20 +129,18 @@ PRE_UNINSTALL = :
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-DIST_COMMON = $(srcdir)/gnulib.mk $(srcdir)/Makefile.in \
-       $(srcdir)/Makefile.am $(srcdir)/config.hin alloca.c \
-       $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS)
 @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_1 = unistr/u8-mbtoucr.c
 @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_2 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c
 @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_3 = uniwidth/width.c
 subdir = lib
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -111,9 +148,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -122,14 +160,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -145,36 +184,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -187,6 +235,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+       $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES =
@@ -198,34 +248,35 @@ am__v_AR_0 = @echo "  AR      " $@;
 am__v_AR_1 = 
 libdiffutils_a_AR = $(AR) $(ARFLAGS)
 am__DEPENDENCIES_1 =
-am__libdiffutils_a_SOURCES_DIST = allocator.c areadlink.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 diffseq.h dirname.c basename.c dirname-lgpl.c \
-       basename-lgpl.c stripslash.c exclude.c exitfail.c fd-hook.c \
-       file-type.c filenamecat.c filenamecat-lgpl.c freopen-safer.c \
-       gettext.h gettime.c hard-locale.c hash.c imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
-       localcharset.c malloca.c mbchar.c mbiter.h mbiter.c \
-       mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c progname.h \
-       progname.c propername.h propername.c quotearg.c sh-quote.h \
-       sh-quote.c sig-handler.c size_max.h stat-time.c strftime.c \
-       striconv.h striconv.c strnlen1.h strnlen1.c system-quote.h \
-       system-quote.c tempname.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 \
-       xreadlink.c xsize.h xsize.c xstriconv.h xstriconv.c xstrndup.h \
-       xstrndup.c xstrtol.c xstrtoul.c xstrtol-error.c xstrtoumax.c \
-       xvasprintf.h xvasprintf.c xasprintf.c cmpbuf.c prepargs.c
-@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_1 = u8-mbtoucr.$(OBJEXT)
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_2 = u8-uctomb.$(OBJEXT) \
-@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@   u8-uctomb-aux.$(OBJEXT)
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_3 =  \
-@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@     width.$(OBJEXT)
+am__libdiffutils_a_SOURCES_DIST = allocator.c areadlink.c argmatch.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 diffseq.h dirname.c basename.c \
+       dirname-lgpl.c basename-lgpl.c stripslash.c exclude.c \
+       exitfail.c fd-hook.c file-type.c filenamecat.c \
+       filenamecat-lgpl.c freopen-safer.c gettext.h gettime.c \
+       hard-locale.c hash.c imaxtostr.c inttostr.c offtostr.c \
+       uinttostr.c umaxtostr.c localcharset.h localcharset.c \
+       malloca.c mbchar.c mbiter.h mbiter.c mbscasecmp.c mbslen.c \
+       mbsstr.c mbuiter.h mbuiter.c progname.h progname.c \
+       propername.h propername.c quotearg.c sh-quote.h sh-quote.c \
+       sig-handler.c size_max.h stat-time.c strftime.c striconv.h \
+       striconv.c strnlen1.h strnlen1.c system-quote.h system-quote.c \
+       tempname.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 xreadlink.c \
+       xsize.h xsize.c xstriconv.h xstriconv.c xstrndup.h xstrndup.c \
+       xstrtol.c xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
+       xvasprintf.c xasprintf.c cmpbuf.c prepargs.c
+am__dirstamp = .dirstamp
+@LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_1 = unistr/u8-mbtoucr.$(OBJEXT)
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_2 = unistr/u8-uctomb.$(OBJEXT) \
+@LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@   unistr/u8-uctomb-aux.$(OBJEXT)
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_3 = uniwidth/width.$(OBJEXT)
 am_libdiffutils_a_OBJECTS = allocator.$(OBJEXT) areadlink.$(OBJEXT) \
-       binary-io.$(OBJEXT) bitrotate.$(OBJEXT) c-ctype.$(OBJEXT) \
-       c-stack.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
+       argmatch.$(OBJEXT) binary-io.$(OBJEXT) bitrotate.$(OBJEXT) \
+       c-ctype.$(OBJEXT) c-stack.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
        c-strncasecmp.$(OBJEXT) careadlinkat.$(OBJEXT) \
        dirname.$(OBJEXT) basename.$(OBJEXT) dirname-lgpl.$(OBJEXT) \
        basename-lgpl.$(OBJEXT) stripslash.$(OBJEXT) exclude.$(OBJEXT) \
@@ -264,14 +315,86 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = $(DEPDIR)/alloca.Po ./$(DEPDIR)/alloca.Po \
+       ./$(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)/careadlinkat.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)/freopen-safer.Po ./$(DEPDIR)/freopen.Po \
+       ./$(DEPDIR)/fstat.Po ./$(DEPDIR)/getdtablesize.Po \
+       ./$(DEPDIR)/getopt.Po ./$(DEPDIR)/getopt1.Po \
+       ./$(DEPDIR)/gettime.Po ./$(DEPDIR)/gettimeofday.Po \
+       ./$(DEPDIR)/hard-locale.Po ./$(DEPDIR)/hash.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)/itold.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.Po ./$(DEPDIR)/mbuiter.Po \
+       ./$(DEPDIR)/memchr.Po ./$(DEPDIR)/mkstemp.Po \
+       ./$(DEPDIR)/mktime.Po ./$(DEPDIR)/msvc-inval.Po \
+       ./$(DEPDIR)/msvc-nothrow.Po ./$(DEPDIR)/nl_langinfo.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)/regcomp.Po \
+       ./$(DEPDIR)/regex.Po ./$(DEPDIR)/regex_internal.Po \
+       ./$(DEPDIR)/regexec.Po ./$(DEPDIR)/secure_getenv.Po \
+       ./$(DEPDIR)/setenv.Po ./$(DEPDIR)/sh-quote.Po \
+       ./$(DEPDIR)/sig-handler.Po ./$(DEPDIR)/sigaction.Po \
+       ./$(DEPDIR)/sigprocmask.Po ./$(DEPDIR)/stat-time.Po \
+       ./$(DEPDIR)/stat.Po ./$(DEPDIR)/strcasecmp.Po \
+       ./$(DEPDIR)/strerror-override.Po ./$(DEPDIR)/strerror.Po \
+       ./$(DEPDIR)/strftime.Po ./$(DEPDIR)/striconv.Po \
+       ./$(DEPDIR)/stripslash.Po ./$(DEPDIR)/strncasecmp.Po \
+       ./$(DEPDIR)/strndup.Po ./$(DEPDIR)/strnlen.Po \
+       ./$(DEPDIR)/strnlen1.Po ./$(DEPDIR)/strptime.Po \
+       ./$(DEPDIR)/strtoimax.Po ./$(DEPDIR)/strtol.Po \
+       ./$(DEPDIR)/strtoul.Po ./$(DEPDIR)/strtoull.Po \
+       ./$(DEPDIR)/strtoumax.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)/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)/xalloc-die.Po \
+       ./$(DEPDIR)/xasprintf.Po ./$(DEPDIR)/xfreopen.Po \
+       ./$(DEPDIR)/xmalloc.Po ./$(DEPDIR)/xreadlink.Po \
+       ./$(DEPDIR)/xsize.Po ./$(DEPDIR)/xstriconv.Po \
+       ./$(DEPDIR)/xstrndup.Po ./$(DEPDIR)/xstrtol-error.Po \
+       ./$(DEPDIR)/xstrtol.Po ./$(DEPDIR)/xstrtoul.Po \
+       ./$(DEPDIR)/xstrtoumax.Po ./$(DEPDIR)/xvasprintf.Po \
+       unistr/$(DEPDIR)/u8-mbtoucr.Po \
+       unistr/$(DEPDIR)/u8-uctomb-aux.Po \
+       unistr/$(DEPDIR)/u8-uctomb.Po uniwidth/$(DEPDIR)/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) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CFLAGS) $(CFLAGS)
+am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC      " $@;
@@ -311,6 +434,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.hin \
+       $(srcdir)/gnulib.mk $(top_srcdir)/build-aux/depcomp alloca.c
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -358,13 +483,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -418,6 +547,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -427,13 +559,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -489,6 +626,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -497,6 +635,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -506,6 +645,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -513,14 +654,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -552,6 +699,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -614,6 +762,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -633,6 +783,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -686,6 +838,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -700,6 +853,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -720,6 +874,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -730,6 +885,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -744,6 +900,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -770,17 +927,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -828,6 +992,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -836,6 +1001,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -855,11 +1021,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -876,6 +1045,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -884,6 +1057,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -892,14 +1066,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -908,6 +1087,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -916,9 +1096,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -971,14 +1155,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -987,6 +1176,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -1015,21 +1205,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1052,9 +1246,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1078,21 +1274,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1111,6 +1312,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1148,11 +1350,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1177,16 +1381,16 @@ AM_CFLAGS = $(GNULIB_WARN_CFLAGS) $(WERROR_CFLAGS)
 # statements but through direct file reference. Therefore this snippet must be
 # present in all Makefile.am that need it. This is ensured by the applicability
 # 'all' defined above.
-BUILT_SOURCES = $(ALLOCA_H) configmake.h $(ERRNO_H) fcntl.h $(FLOAT_H) \
-       $(FNMATCH_H) $(GETOPT_H) $(ICONV_H) iconv_open-aix.h \
-       iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h \
-       iconv_open-solaris.h inttypes.h langinfo.h locale.h signal.h \
-       arg-nonnull.h c++defs.h unused-parameter.h warn-on-use.h \
-       $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) stdio.h \
-       stdlib.h string.h strings.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
+BUILT_SOURCES = $(ALLOCA_H) configmake.h ctype.h $(ERRNO_H) fcntl.h \
+       $(FLOAT_H) $(FNMATCH_H) $(GETOPT_H) $(ICONV_H) \
+       iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h \
+       iconv_open-osf.h iconv_open-solaris.h inttypes.h langinfo.h \
+       locale.h signal.h arg-nonnull.h c++defs.h unused-parameter.h \
+       warn-on-use.h $(STDARG_H) $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) \
+       stdio.h stdlib.h string.h strings.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 = configmake.h configmake.h-t charset.alias ref-add.sed \
        ref-del.sed
 
@@ -1198,13 +1402,14 @@ CLEANFILES = configmake.h configmake.h-t charset.alias ref-add.sed \
 #      for the 2004 POSIX specification]
 #endif
 EXTRA_DIST = alloca.c alloca.in.h allocator.h \
-       $(top_srcdir)/build-aux/announce-gen areadlink.h btowc.c \
-       c-strcaseeq.h careadlinkat.h close.c stripslash.c dirname.h \
+       $(top_srcdir)/build-aux/announce-gen areadlink.h argmatch.h \
+       assure.h btowc.c c-strcaseeq.h careadlinkat.h close.c \
+       ctype.in.h stripslash.c dirname.h \
        $(top_srcdir)/build-aux/do-release-commit-and-tag dosname.h \
        dup2.c errno.in.h error.c error.h exclude.h exitfail.h fcntl.c \
-       fcntl.in.h fd-hook.h file-type.h filenamecat.h float.c \
-       float.in.h itold.c fnmatch.c fnmatch.in.h fnmatch_loop.c \
-       freopen.c stdio--.h stdio-safer.h fstat.c \
+       fcntl.in.h fd-hook.h file-type.h filename.h filenamecat.h \
+       float.c float.in.h itold.c fnmatch.c fnmatch.in.h \
+       fnmatch_loop.c freopen.c stdio--.h stdio-safer.h fstat.c \
        $(top_srcdir)/build-aux/gendocs.sh getdtablesize.c getopt.c \
        getopt.in.h getopt1.c getopt_int.h gettimeofday.c \
        $(top_srcdir)/build-aux/git-version-gen \
@@ -1218,18 +1423,20 @@ EXTRA_DIST = alloca.c alloca.in.h allocator.h \
        iconv_open-hpux.gperf iconv_open-irix.gperf \
        iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c \
        ignore-value.h intprops.h anytostr.c inttostr.h inttypes.in.h \
-       iswblank.c langinfo.in.h config.charset ref-add.sin \
+       isblank.c iswblank.c langinfo.in.h config.charset ref-add.sin \
        ref-del.sin locale.in.h localeconv.c lstat.c \
-       $(top_srcdir)/maint.mk malloc.c malloc.c malloca.h \
-       malloca.valgrind mbchar.h mbrtowc.c mbsinit.c mbsrtowcs-impl.h \
+       $(top_srcdir)/maint.mk malloc.c malloca.h malloca.valgrind \
+       mbchar.h mbrtowc.c mbsinit.c mbsrtowcs-impl.h \
        mbsrtowcs-state.c mbsrtowcs.c str-kmp.h mbtowc-impl.h mbtowc.c \
        memchr.c memchr.valgrind mkstemp.c mktime-internal.h mktime.c \
-       msvc-inval.c msvc-inval.h msvc-nothrow.c msvc-nothrow.h \
-       nl_langinfo.c open.c pathmax.h quote.h quote.h quotearg.h \
-       raise.c readlink.c $(top_srcdir)/README-release regcomp.c \
-       regex.c regex.h regex_internal.c regex_internal.h regexec.c \
-       secure_getenv.c sig-handler.h sigaction.c signal.in.h \
-       sigprocmask.c $(top_srcdir)/build-aux/snippet/_Noreturn.h \
+       mktime-internal.h mktime.c msvc-inval.c msvc-inval.h \
+       msvc-nothrow.c msvc-nothrow.h nl_langinfo.c open.c pathmax.h \
+       quote.h quote.h quotearg.h raise.c rawmemchr.c \
+       rawmemchr.valgrind readlink.c $(top_srcdir)/README-release \
+       regcomp.c regex.c regex.h regex_internal.c regex_internal.h \
+       regexec.c secure_getenv.c setenv.c sig-handler.h sigaction.c \
+       signal.in.h sigprocmask.c \
+       $(top_srcdir)/build-aux/snippet/_Noreturn.h \
        $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
        $(top_srcdir)/build-aux/snippet/c++defs.h \
        $(top_srcdir)/build-aux/snippet/unused-parameter.h \
@@ -1240,9 +1447,10 @@ EXTRA_DIST = alloca.c alloca.in.h allocator.h \
        strftime.h string.in.h strings.in.h strndup.c strnlen.c \
        strptime.c strtol.c strtoul.c strtoull.c strtoimax.c \
        strtoumax.c sys_stat.in.h sys_time.in.h sys_types.in.h \
-       sys_wait.in.h tempname.h time.in.h time_r.c timespec.h trim.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 \
        unistd.in.h unistr.in.h unitypes.in.h localcharset.h \
-       uniwidth.in.h uniwidth/cjk.h unlocked-io.h \
+       uniwidth.in.h uniwidth/cjk.h unlocked-io.h unsetenv.c \
        $(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 \
@@ -1251,14 +1459,14 @@ EXTRA_DIST = alloca.c alloca.in.h allocator.h \
        wchar.in.h wcrtomb.c wctype.in.h wcwidth.c xalloc.h \
        xalloc-oversized.h xreadlink.h xstrtol.h xalloc.h
 MOSTLYCLEANDIRS = sys sys
-MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.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 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 inttypes.h \
-       inttypes.h-t langinfo.h langinfo.h-t locale.h locale.h-t \
-       signal.h signal.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h \
-       c++defs.h-t unused-parameter.h unused-parameter.h-t \
+MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t ctype.h \
+       ctype.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 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 \
+       inttypes.h inttypes.h-t langinfo.h langinfo.h-t locale.h \
+       locale.h-t signal.h signal.h-t arg-nonnull.h arg-nonnull.h-t \
+       c++defs.h c++defs.h-t unused-parameter.h unused-parameter.h-t \
        warn-on-use.h warn-on-use.h-t 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 \
@@ -1272,43 +1480,53 @@ MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \
 SUFFIXES = .sed .sin
 noinst_LIBRARIES = libdiffutils.a
 noinst_HEADERS = cmpbuf.h prepargs.h
-libdiffutils_a_SOURCES = allocator.c areadlink.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 diffseq.h dirname.c basename.c dirname-lgpl.c \
-       basename-lgpl.c stripslash.c exclude.c exitfail.c fd-hook.c \
-       file-type.c filenamecat.c filenamecat-lgpl.c freopen-safer.c \
-       gettext.h gettime.c hard-locale.c hash.c imaxtostr.c \
-       inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.h \
-       localcharset.c malloca.c mbchar.c mbiter.h mbiter.c \
-       mbscasecmp.c mbslen.c mbsstr.c mbuiter.h mbuiter.c progname.h \
-       progname.c propername.h propername.c quotearg.c sh-quote.h \
-       sh-quote.c sig-handler.c size_max.h stat-time.c strftime.c \
-       striconv.h striconv.c strnlen1.h strnlen1.c system-quote.h \
-       system-quote.c tempname.c timespec.c trim.c unistd.c \
-       $(am__append_1) $(am__append_2) $(am__append_3) version-etc.h \
-       version-etc.c version-etc-fsf.c wctype-h.c xmalloc.c \
-       xalloc-die.c xfreopen.c xfreopen.h xreadlink.c xsize.h xsize.c \
-       xstriconv.h xstriconv.c xstrndup.h xstrndup.c xstrtol.c \
-       xstrtoul.c xstrtol-error.c xstrtoumax.c xvasprintf.h \
-       xvasprintf.c xasprintf.c cmpbuf.c prepargs.c
+libdiffutils_a_SOURCES = allocator.c areadlink.c argmatch.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 diffseq.h dirname.c basename.c \
+       dirname-lgpl.c basename-lgpl.c stripslash.c exclude.c \
+       exitfail.c fd-hook.c file-type.c filenamecat.c \
+       filenamecat-lgpl.c freopen-safer.c gettext.h gettime.c \
+       hard-locale.c hash.c imaxtostr.c inttostr.c offtostr.c \
+       uinttostr.c umaxtostr.c localcharset.h localcharset.c \
+       malloca.c mbchar.c mbiter.h mbiter.c mbscasecmp.c mbslen.c \
+       mbsstr.c mbuiter.h mbuiter.c progname.h progname.c \
+       propername.h propername.c quotearg.c sh-quote.h sh-quote.c \
+       sig-handler.c size_max.h stat-time.c strftime.c striconv.h \
+       striconv.c strnlen1.h strnlen1.c system-quote.h system-quote.c \
+       tempname.c timespec.c trim.c unistd.c $(am__append_1) \
+       $(am__append_2) $(am__append_3) version-etc.h version-etc.c \
+       version-etc-fsf.c wctype-h.c xmalloc.c xalloc-die.c xfreopen.c \
+       xfreopen.h xreadlink.c xsize.h xsize.c xstriconv.h xstriconv.c \
+       xstrndup.h xstrndup.c xstrtol.c xstrtoul.c xstrtol-error.c \
+       xstrtoumax.c xvasprintf.h xvasprintf.c xasprintf.c cmpbuf.c \
+       prepargs.c
 libdiffutils_a_LIBADD = $(gl_LIBOBJS) @ALLOCA@
 libdiffutils_a_DEPENDENCIES = $(gl_LIBOBJS) @ALLOCA@
 EXTRA_libdiffutils_a_SOURCES = alloca.c btowc.c close.c stripslash.c \
        dup2.c error.c fcntl.c float.c itold.c fnmatch.c \
        fnmatch_loop.c freopen.c fstat.c getdtablesize.c getopt.c \
        getopt1.c gettimeofday.c iconv.c iconv_close.c iconv_open.c \
-       anytostr.c iswblank.c localeconv.c lstat.c malloc.c malloc.c \
+       anytostr.c isblank.c iswblank.c localeconv.c lstat.c malloc.c \
        mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \
-       memchr.c mkstemp.c mktime.c msvc-inval.c msvc-nothrow.c \
-       nl_langinfo.c open.c raise.c readlink.c regcomp.c regex.c \
-       regex_internal.c regexec.c secure_getenv.c sigaction.c \
-       sigprocmask.c stat.c strcasecmp.c strncasecmp.c strerror.c \
-       strerror-override.c strndup.c strnlen.c strptime.c strtol.c \
-       strtoul.c strtoull.c strtoimax.c strtoumax.c time_r.c \
+       memchr.c mkstemp.c mktime.c mktime.c msvc-inval.c \
+       msvc-nothrow.c nl_langinfo.c open.c raise.c rawmemchr.c \
+       readlink.c regcomp.c regex.c regex_internal.c regexec.c \
+       secure_getenv.c setenv.c sigaction.c sigprocmask.c stat.c \
+       strcasecmp.c strncasecmp.c strerror.c strerror-override.c \
+       strndup.c strnlen.c strptime.c strtol.c strtoul.c strtoull.c \
+       strtoimax.c strtoumax.c time_r.c time_rz.c timegm.c unsetenv.c \
        asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
        asprintf.c vasprintf.c wcrtomb.c wcwidth.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__ || 60000000 <= __DECC_VER)
 GPERF = gperf
+V_GPERF = $(V_GPERF_@AM_V@)
+V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@)
+V_GPERF_0 = @echo "  GPERF   " $@;
 charset_alias = $(DESTDIR)$(libdir)/charset.alias
 charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
 
@@ -1337,16 +1555,15 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am $(srcdir)/gnulib.mk $(am__configur
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu lib/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
-$(srcdir)/gnulib.mk:
+$(srcdir)/gnulib.mk $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1358,8 +1575,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 config.h: stamp-h1
-       @if test ! -f $@; then rm -f stamp-h1; else :; fi
-       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
+       @test -f $@ || rm -f stamp-h1
+       @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.hin $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -1374,6 +1591,27 @@ distclean-hdr:
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+unistr/$(am__dirstamp):
+       @$(MKDIR_P) unistr
+       @: > 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/u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+unistr/u8-uctomb-aux.$(OBJEXT): unistr/$(am__dirstamp) \
+       unistr/$(DEPDIR)/$(am__dirstamp)
+uniwidth/$(am__dirstamp):
+       @$(MKDIR_P) uniwidth
+       @: > 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)
+
 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)
@@ -1381,221 +1619,184 @@ libdiffutils.a: $(libdiffutils_a_OBJECTS) $(libdiffutils_a_DEPENDENCIES) $(EXTRA
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
+       -rm -f unistr/*.$(OBJEXT)
+       -rm -f uniwidth/*.$(OBJEXT)
 
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloca.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/allocator.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anytostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/areadlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asnprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename-lgpl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bitrotate.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btowc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-stack.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmpbuf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname-lgpl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exclude.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exitfail.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file-type.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fnmatch_loop.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freopen-safer.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/freopen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettimeofday.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard-locale.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imaxtostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inttostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iswblank.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localcharset.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localeconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchar.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbiter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbrtowc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbscasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsinit.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbslen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs-state.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsrtowcs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbsstr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbtowc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbuiter.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memchr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkstemp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mktime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nl_langinfo.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/offtostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-args.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printf-parse.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/propername.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/raise.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regcomp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex_internal.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regexec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/secure_getenv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sh-quote.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-handler.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat-time.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strcasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strftime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stripslash.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strncasecmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strndup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strnlen1.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strptime.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoimax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtol.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoul.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoull.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoumax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/system-quote.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tempname.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time_r.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timespec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trim.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/u8-mbtoucr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/u8-uctomb-aux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/u8-uctomb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uinttostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umaxtostr.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasnprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vasprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcrtomb.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wctype-h.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wcwidth.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/width.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xalloc-die.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xasprintf.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfreopen.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xreadlink.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xsize.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstriconv.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol-error.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoul.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtoumax.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xvasprintf.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.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)/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)/careadlinkat.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)/freopen-safer.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)/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)/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)/itold.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.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)/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.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)/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)/secure_getenv.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)/sh-quote.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)/stat-time.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)/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)/strftime.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)/strndup.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)/strtoul.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoull.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strtoumax.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)/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)/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)/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)/xstriconv.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrndup.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@./$(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)/xstrtoumax.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@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
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $<; \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@  $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $$($(CYGPATH_W) $<); \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-u8-mbtoucr.o: unistr/u8-mbtoucr.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-mbtoucr.o -MD -MP -MF $(DEPDIR)/u8-mbtoucr.Tpo -c -o u8-mbtoucr.o `test -f 'unistr/u8-mbtoucr.c' || echo '$(srcdir)/'`unistr/u8-mbtoucr.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/u8-mbtoucr.Tpo $(DEPDIR)/u8-mbtoucr.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-mbtoucr.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o u8-mbtoucr.o `test -f 'unistr/u8-mbtoucr.c' || echo '$(srcdir)/'`unistr/u8-mbtoucr.c
-
-u8-mbtoucr.obj: unistr/u8-mbtoucr.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-mbtoucr.obj -MD -MP -MF $(DEPDIR)/u8-mbtoucr.Tpo -c -o 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) $(DEPDIR)/u8-mbtoucr.Tpo $(DEPDIR)/u8-mbtoucr.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-mbtoucr.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o 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`
-
-u8-uctomb.o: unistr/u8-uctomb.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-uctomb.o -MD -MP -MF $(DEPDIR)/u8-uctomb.Tpo -c -o u8-uctomb.o `test -f 'unistr/u8-uctomb.c' || echo '$(srcdir)/'`unistr/u8-uctomb.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/u8-uctomb.Tpo $(DEPDIR)/u8-uctomb.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o u8-uctomb.o `test -f 'unistr/u8-uctomb.c' || echo '$(srcdir)/'`unistr/u8-uctomb.c
-
-u8-uctomb.obj: unistr/u8-uctomb.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-uctomb.obj -MD -MP -MF $(DEPDIR)/u8-uctomb.Tpo -c -o 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) $(DEPDIR)/u8-uctomb.Tpo $(DEPDIR)/u8-uctomb.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o 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`
-
-u8-uctomb-aux.o: unistr/u8-uctomb-aux.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-uctomb-aux.o -MD -MP -MF $(DEPDIR)/u8-uctomb-aux.Tpo -c -o 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) $(DEPDIR)/u8-uctomb-aux.Tpo $(DEPDIR)/u8-uctomb-aux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb-aux.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o u8-uctomb-aux.o `test -f 'unistr/u8-uctomb-aux.c' || echo '$(srcdir)/'`unistr/u8-uctomb-aux.c
-
-u8-uctomb-aux.obj: unistr/u8-uctomb-aux.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT u8-uctomb-aux.obj -MD -MP -MF $(DEPDIR)/u8-uctomb-aux.Tpo -c -o 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) $(DEPDIR)/u8-uctomb-aux.Tpo $(DEPDIR)/u8-uctomb-aux.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='unistr/u8-uctomb-aux.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o 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`
-
-width.o: uniwidth/width.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT width.o -MD -MP -MF $(DEPDIR)/width.Tpo -c -o width.o `test -f 'uniwidth/width.c' || echo '$(srcdir)/'`uniwidth/width.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/width.Tpo $(DEPDIR)/width.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uniwidth/width.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o width.o `test -f 'uniwidth/width.c' || echo '$(srcdir)/'`uniwidth/width.c
-
-width.obj: uniwidth/width.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT width.obj -MD -MP -MF $(DEPDIR)/width.Tpo -c -o 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) $(DEPDIR)/width.Tpo $(DEPDIR)/width.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='uniwidth/width.c' object='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) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o width.obj `if test -f 'uniwidth/width.c'; then $(CYGPATH_W) 'uniwidth/width.c'; else $(CYGPATH_W) '$(srcdir)/uniwidth/width.c'; fi`
+@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
@@ -1713,6 +1914,10 @@ 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)
+       -rm -f unistr/$(DEPDIR)/$(am__dirstamp)
+       -rm -f unistr/$(am__dirstamp)
+       -rm -f uniwidth/$(DEPDIR)/$(am__dirstamp)
+       -rm -f uniwidth/$(am__dirstamp)
 
 maintainer-clean-generic:
        @echo "This command is intended for maintainers to use"
@@ -1724,7 +1929,154 @@ clean: clean-am
 clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf $(DEPDIR) ./$(DEPDIR)
+               -rm -f $(DEPDIR)/alloca.Po
+       -rm -f ./$(DEPDIR)/alloca.Po
+       -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)/careadlinkat.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)/freopen-safer.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)/gettime.Po
+       -rm -f ./$(DEPDIR)/gettimeofday.Po
+       -rm -f ./$(DEPDIR)/hard-locale.Po
+       -rm -f ./$(DEPDIR)/hash.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)/itold.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.Po
+       -rm -f ./$(DEPDIR)/mbuiter.Po
+       -rm -f ./$(DEPDIR)/memchr.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.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)/regcomp.Po
+       -rm -f ./$(DEPDIR)/regex.Po
+       -rm -f ./$(DEPDIR)/regex_internal.Po
+       -rm -f ./$(DEPDIR)/regexec.Po
+       -rm -f ./$(DEPDIR)/secure_getenv.Po
+       -rm -f ./$(DEPDIR)/setenv.Po
+       -rm -f ./$(DEPDIR)/sh-quote.Po
+       -rm -f ./$(DEPDIR)/sig-handler.Po
+       -rm -f ./$(DEPDIR)/sigaction.Po
+       -rm -f ./$(DEPDIR)/sigprocmask.Po
+       -rm -f ./$(DEPDIR)/stat-time.Po
+       -rm -f ./$(DEPDIR)/stat.Po
+       -rm -f ./$(DEPDIR)/strcasecmp.Po
+       -rm -f ./$(DEPDIR)/strerror-override.Po
+       -rm -f ./$(DEPDIR)/strerror.Po
+       -rm -f ./$(DEPDIR)/strftime.Po
+       -rm -f ./$(DEPDIR)/striconv.Po
+       -rm -f ./$(DEPDIR)/stripslash.Po
+       -rm -f ./$(DEPDIR)/strncasecmp.Po
+       -rm -f ./$(DEPDIR)/strndup.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)/strtoul.Po
+       -rm -f ./$(DEPDIR)/strtoull.Po
+       -rm -f ./$(DEPDIR)/strtoumax.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)/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)/xalloc-die.Po
+       -rm -f ./$(DEPDIR)/xasprintf.Po
+       -rm -f ./$(DEPDIR)/xfreopen.Po
+       -rm -f ./$(DEPDIR)/xmalloc.Po
+       -rm -f ./$(DEPDIR)/xreadlink.Po
+       -rm -f ./$(DEPDIR)/xsize.Po
+       -rm -f ./$(DEPDIR)/xstriconv.Po
+       -rm -f ./$(DEPDIR)/xstrndup.Po
+       -rm -f ./$(DEPDIR)/xstrtol-error.Po
+       -rm -f ./$(DEPDIR)/xstrtol.Po
+       -rm -f ./$(DEPDIR)/xstrtoul.Po
+       -rm -f ./$(DEPDIR)/xstrtoumax.Po
+       -rm -f ./$(DEPDIR)/xvasprintf.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
@@ -1770,7 +2122,154 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf $(DEPDIR) ./$(DEPDIR)
+               -rm -f $(DEPDIR)/alloca.Po
+       -rm -f ./$(DEPDIR)/alloca.Po
+       -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)/careadlinkat.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)/freopen-safer.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)/gettime.Po
+       -rm -f ./$(DEPDIR)/gettimeofday.Po
+       -rm -f ./$(DEPDIR)/hard-locale.Po
+       -rm -f ./$(DEPDIR)/hash.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)/itold.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.Po
+       -rm -f ./$(DEPDIR)/mbuiter.Po
+       -rm -f ./$(DEPDIR)/memchr.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.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)/regcomp.Po
+       -rm -f ./$(DEPDIR)/regex.Po
+       -rm -f ./$(DEPDIR)/regex_internal.Po
+       -rm -f ./$(DEPDIR)/regexec.Po
+       -rm -f ./$(DEPDIR)/secure_getenv.Po
+       -rm -f ./$(DEPDIR)/setenv.Po
+       -rm -f ./$(DEPDIR)/sh-quote.Po
+       -rm -f ./$(DEPDIR)/sig-handler.Po
+       -rm -f ./$(DEPDIR)/sigaction.Po
+       -rm -f ./$(DEPDIR)/sigprocmask.Po
+       -rm -f ./$(DEPDIR)/stat-time.Po
+       -rm -f ./$(DEPDIR)/stat.Po
+       -rm -f ./$(DEPDIR)/strcasecmp.Po
+       -rm -f ./$(DEPDIR)/strerror-override.Po
+       -rm -f ./$(DEPDIR)/strerror.Po
+       -rm -f ./$(DEPDIR)/strftime.Po
+       -rm -f ./$(DEPDIR)/striconv.Po
+       -rm -f ./$(DEPDIR)/stripslash.Po
+       -rm -f ./$(DEPDIR)/strncasecmp.Po
+       -rm -f ./$(DEPDIR)/strndup.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)/strtoul.Po
+       -rm -f ./$(DEPDIR)/strtoull.Po
+       -rm -f ./$(DEPDIR)/strtoumax.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)/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)/xalloc-die.Po
+       -rm -f ./$(DEPDIR)/xasprintf.Po
+       -rm -f ./$(DEPDIR)/xfreopen.Po
+       -rm -f ./$(DEPDIR)/xmalloc.Po
+       -rm -f ./$(DEPDIR)/xreadlink.Po
+       -rm -f ./$(DEPDIR)/xsize.Po
+       -rm -f ./$(DEPDIR)/xstriconv.Po
+       -rm -f ./$(DEPDIR)/xstrndup.Po
+       -rm -f ./$(DEPDIR)/xstrtol-error.Po
+       -rm -f ./$(DEPDIR)/xstrtol.Po
+       -rm -f ./$(DEPDIR)/xstrtoul.Po
+       -rm -f ./$(DEPDIR)/xstrtoumax.Po
+       -rm -f ./$(DEPDIR)/xvasprintf.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
 
@@ -1791,20 +2290,22 @@ uninstall-am: uninstall-local
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS TAGS all all-am all-local 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-exec-local 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 \
-       uninstall-local
+.PHONY: CTAGS GTAGS TAGS all all-am all-local 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-exec-local \
+       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 uninstall-local
+
+.PRECIOUS: Makefile
 
 
 # We need the following in order to create <alloca.h> when the system
@@ -1819,7 +2320,7 @@ uninstall-am: uninstall-local
 @GL_GENERATE_ALLOCA_H_FALSE@   rm -f $@
 
 # Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+.
+# provided by autoconf 2.59c+ or 2.70.
 # The Automake-defined pkg* macros are appended, in the order
 # listed in the Automake 1.10a+ documentation.
 configmake.h: Makefile
@@ -1835,6 +2336,7 @@ configmake.h: Makefile
          echo '#define SYSCONFDIR "$(sysconfdir)"'; \
          echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
          echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+         echo '#define RUNSTATEDIR "$(runstatedir)"'; \
          echo '#define INCLUDEDIR "$(includedir)"'; \
          echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
          echo '#define DOCDIR "$(docdir)"'; \
@@ -1855,6 +2357,24 @@ configmake.h: Makefile
        } | sed '/""/d' > $@-t && \
        mv -f $@-t $@
 
+# 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''@/$(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 $@
+
 # 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
@@ -1977,19 +2497,19 @@ clean-GNUmakefile:
 @GL_GENERATE_ICONV_H_FALSE@    rm -f $@
 
 iconv_open-aix.h: iconv_open-aix.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
+       $(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
 iconv_open-hpux.h: iconv_open-hpux.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \
        mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
 iconv_open-irix.h: iconv_open-irix.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \
        mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
 iconv_open-osf.h: iconv_open-osf.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \
        mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
 iconv_open-solaris.h: iconv_open-solaris.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \
        mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h
 
 # We need the following in order to create <inttypes.h> when the system
@@ -2016,6 +2536,7 @@ 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/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
+             -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
              -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
              -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
              -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
@@ -2241,6 +2762,7 @@ warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
 @GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@          -e 's|@''HAVE_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; \
@@ -2435,6 +2957,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
              -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
              -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+             -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
              -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
              -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
@@ -2486,6 +3009,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -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_R''@|$(REPLACE_RANDOM_R)|g' \
              -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
@@ -2734,15 +3258,20 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
+             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
              -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
              -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
              -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
              -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
              -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
+             -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
              -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
              -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
              -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
              -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
+             -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
+             -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
+             -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \
              -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
              -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
              -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
@@ -2750,6 +3279,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -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' \
              -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
+             -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|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)' \
@@ -2870,6 +3400,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
              -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+             -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
              -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
@@ -2882,9 +3413,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -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_SLEEP''@|$(REPLACE_SLEEP)|g' \
              -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
+             -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
              -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
              -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
              -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
index 72d28ee..d457ebb 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocation on the stack.
 
-   Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation,
+   Copyright (C) 1995, 1999, 2001-2004, 2006-2016 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify it
index b71fbbb..1f1eab6 100644 (file)
@@ -1,6 +1,6 @@
 /* Memory allocators such as malloc+free.
 
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1d2fca4..39aab0e 100644 (file)
@@ -1,6 +1,6 @@
 /* anytostr.c -- convert integers to printable strings
 
-   Copyright (C) 2001, 2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
 /* Tell gcc not to warn about the (i < 0) test, below.  */
 #if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__
 # pragma GCC diagnostic ignored "-Wtype-limits"
+#elif defined __clang__
+# pragma clang diagnostic ignored "-Wtautological-compare"
 #endif
 
 #include <config.h>
index 7b81685..fee84a3 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-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5870ce5..829c959 100644 (file)
@@ -1,6 +1,6 @@
 /* Read symbolic links without size limitation.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2013 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
similarity index 99%
rename from gnulib-tests/argmatch.c
rename to lib/argmatch.c
index 9125e2a..bd1ad71 100644 (file)
@@ -1,6 +1,6 @@
 /* argmatch.c -- find a match for a string in an array
 
-   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2013 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
similarity index 97%
rename from gnulib-tests/argmatch.h
rename to lib/argmatch.h
index 2e0275c..43cda5a 100644 (file)
@@ -1,6 +1,6 @@
 /* argmatch.h -- definitions and prototypes for argmatch.c
 
-   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2013 Free Software
+   Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 # include "verify.h"
 
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
 # define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
 
 /* Assert there are as many real arguments as there are values
@@ -100,4 +104,8 @@ char const *argmatch_to_argument (char const *value,
   argmatch_to_argument (Value, Arglist,                                 \
                         (char const *) (Vallist), sizeof *(Vallist))
 
+#ifdef  __cplusplus
+}
+#endif
+
 #endif /* ARGMATCH_H_ */
index 76e228d..f23b776 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 713dae1..d0ca5f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2007, 2009-2013 Free Software Foundation,
+   Copyright (C) 1999, 2002, 2006-2007, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software; you can redistribute it and/or modify
diff --git a/lib/assure.h b/lib/assure.h
new file mode 100644 (file)
index 0000000..de1f665
--- /dev/null
@@ -0,0 +1,37 @@
+/* Run-time assert-like macros.
+
+   Copyright (C) 2014-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   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.  */
+
+#ifndef _GL_ASSURE_H
+#define _GL_ASSURE_H
+
+#include <assert.h>
+
+/* Check E's value at runtime, and report an error and abort if not.
+   However, do nothng if NDEBUG is defined.
+
+   Unlike standard 'assert', this macro always compiles E even when NDEBUG
+   is defined, so as to catch typos and avoid some GCC warnings.  */
+
+#ifdef NDEBUG
+# define assure(E) ((void) (0 && (E)))
+#else
+# define assure(E) assert (E)
+#endif
+
+#endif
index 9307e83..1182109 100644 (file)
@@ -1,6 +1,6 @@
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index d73fd41..ed1872d 100644 (file)
@@ -1,6 +1,6 @@
 /* basename.c -- return the last element in a file name
 
-   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2013 Free Software
+   Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 8bbdb44..d828bcd 100644 (file)
@@ -1,3 +1,4 @@
 #include <config.h>
 #define BINARY_IO_INLINE _GL_EXTERN_INLINE
 #include "binary-io.h"
+typedef int dummy;
index 317fe3d..9f17c0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Binary mode I/O.
-   Copyright (C) 2001, 2003, 2005, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2005, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -25,6 +25,9 @@
    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
@@ -57,7 +60,7 @@ set_binary_mode (int fd, int mode)
 
 /* SET_BINARY (fd);
    changes the file descriptor fd to perform binary I/O.  */
-#ifdef __DJGPP__
+#if defined __DJGPP__ || defined __EMX__
 # include <unistd.h> /* declares isatty() */
   /* Avoid putting stdin/stdout in binary mode if it is connected to
      the console, because that would make it impossible for the user
index 9e10a45..a259481 100644 (file)
@@ -1,5 +1,5 @@
 /* bitrotate.h - Rotate bits in integers
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This 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,6 +23,9 @@
 #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 6c7cbec..e7badf9 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert unibyte character to wide character.
-   Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 752d2e3..5d9d4d8 100644 (file)
@@ -1,395 +1,3 @@
-/* Character handling in C locale.
-
-   Copyright 2000-2003, 2006, 2009-2013 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, see <http://www.gnu.org/licenses/>.  */
-
 #include <config.h>
-
-/* Specification.  */
-#define NO_C_CTYPE_MACROS
+#define C_CTYPE_INLINE _GL_EXTERN_INLINE
 #include "c-ctype.h"
-
-/* The function isascii is not locale dependent. Its use in EBCDIC is
-   questionable. */
-bool
-c_isascii (int c)
-{
-  return (c >= 0x00 && c <= 0x7f);
-}
-
-bool
-c_isalnum (int c)
-{
-#if C_CTYPE_CONSECUTIVE_DIGITS \
-    && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-  return ((c >= '0' && c <= '9')
-          || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
-#else
-  return ((c >= '0' && c <= '9')
-          || (c >= 'A' && c <= 'Z')
-          || (c >= 'a' && c <= 'z'));
-#endif
-#else
-  switch (c)
-    {
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isalpha (int c)
-{
-#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-  return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
-#else
-  return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
-#endif
-#else
-  switch (c)
-    {
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isblank (int c)
-{
-  return (c == ' ' || c == '\t');
-}
-
-bool
-c_iscntrl (int c)
-{
-#if C_CTYPE_ASCII
-  return ((c & ~0x1f) == 0 || c == 0x7f);
-#else
-  switch (c)
-    {
-    case ' ': case '!': case '"': case '#': case '$': case '%':
-    case '&': case '\'': case '(': case ')': case '*': case '+':
-    case ',': case '-': case '.': case '/':
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-    case ':': case ';': case '<': case '=': case '>': case '?':
-    case '@':
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-    case '[': case '\\': case ']': case '^': case '_': case '`':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-    case '{': case '|': case '}': case '~':
-      return 0;
-    default:
-      return 1;
-    }
-#endif
-}
-
-bool
-c_isdigit (int c)
-{
-#if C_CTYPE_CONSECUTIVE_DIGITS
-  return (c >= '0' && c <= '9');
-#else
-  switch (c)
-    {
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_islower (int c)
-{
-#if C_CTYPE_CONSECUTIVE_LOWERCASE
-  return (c >= 'a' && c <= 'z');
-#else
-  switch (c)
-    {
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isgraph (int c)
-{
-#if C_CTYPE_ASCII
-  return (c >= '!' && c <= '~');
-#else
-  switch (c)
-    {
-    case '!': case '"': case '#': case '$': case '%': case '&':
-    case '\'': case '(': case ')': case '*': case '+': case ',':
-    case '-': case '.': case '/':
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-    case ':': case ';': case '<': case '=': case '>': case '?':
-    case '@':
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-    case '[': case '\\': case ']': case '^': case '_': case '`':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-    case '{': case '|': case '}': case '~':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isprint (int c)
-{
-#if C_CTYPE_ASCII
-  return (c >= ' ' && c <= '~');
-#else
-  switch (c)
-    {
-    case ' ': case '!': case '"': case '#': case '$': case '%':
-    case '&': case '\'': case '(': case ')': case '*': case '+':
-    case ',': case '-': case '.': case '/':
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-    case ':': case ';': case '<': case '=': case '>': case '?':
-    case '@':
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-    case '[': case '\\': case ']': case '^': case '_': case '`':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-    case 'g': case 'h': case 'i': case 'j': case 'k': case 'l':
-    case 'm': case 'n': case 'o': case 'p': case 'q': case 'r':
-    case 's': case 't': case 'u': case 'v': case 'w': case 'x':
-    case 'y': case 'z':
-    case '{': case '|': case '}': case '~':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_ispunct (int c)
-{
-#if C_CTYPE_ASCII
-  return ((c >= '!' && c <= '~')
-          && !((c >= '0' && c <= '9')
-               || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
-#else
-  switch (c)
-    {
-    case '!': case '"': case '#': case '$': case '%': case '&':
-    case '\'': case '(': case ')': case '*': case '+': case ',':
-    case '-': case '.': case '/':
-    case ':': case ';': case '<': case '=': case '>': case '?':
-    case '@':
-    case '[': case '\\': case ']': case '^': case '_': case '`':
-    case '{': case '|': case '}': case '~':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isspace (int c)
-{
-  return (c == ' ' || c == '\t'
-          || c == '\n' || c == '\v' || c == '\f' || c == '\r');
-}
-
-bool
-c_isupper (int c)
-{
-#if C_CTYPE_CONSECUTIVE_UPPERCASE
-  return (c >= 'A' && c <= 'Z');
-#else
-  switch (c)
-    {
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'G': case 'H': case 'I': case 'J': case 'K': case 'L':
-    case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R':
-    case 'S': case 'T': case 'U': case 'V': case 'W': case 'X':
-    case 'Y': case 'Z':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-bool
-c_isxdigit (int c)
-{
-#if C_CTYPE_CONSECUTIVE_DIGITS \
-    && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-  return ((c >= '0' && c <= '9')
-          || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
-#else
-  return ((c >= '0' && c <= '9')
-          || (c >= 'A' && c <= 'F')
-          || (c >= 'a' && c <= 'f'));
-#endif
-#else
-  switch (c)
-    {
-    case '0': case '1': case '2': case '3': case '4': case '5':
-    case '6': case '7': case '8': case '9':
-    case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
-    case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
-      return 1;
-    default:
-      return 0;
-    }
-#endif
-}
-
-int
-c_tolower (int c)
-{
-#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-  return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
-#else
-  switch (c)
-    {
-    case 'A': return 'a';
-    case 'B': return 'b';
-    case 'C': return 'c';
-    case 'D': return 'd';
-    case 'E': return 'e';
-    case 'F': return 'f';
-    case 'G': return 'g';
-    case 'H': return 'h';
-    case 'I': return 'i';
-    case 'J': return 'j';
-    case 'K': return 'k';
-    case 'L': return 'l';
-    case 'M': return 'm';
-    case 'N': return 'n';
-    case 'O': return 'o';
-    case 'P': return 'p';
-    case 'Q': return 'q';
-    case 'R': return 'r';
-    case 'S': return 's';
-    case 'T': return 't';
-    case 'U': return 'u';
-    case 'V': return 'v';
-    case 'W': return 'w';
-    case 'X': return 'x';
-    case 'Y': return 'y';
-    case 'Z': return 'z';
-    default: return c;
-    }
-#endif
-}
-
-int
-c_toupper (int c)
-{
-#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-  return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
-#else
-  switch (c)
-    {
-    case 'a': return 'A';
-    case 'b': return 'B';
-    case 'c': return 'C';
-    case 'd': return 'D';
-    case 'e': return 'E';
-    case 'f': return 'F';
-    case 'g': return 'G';
-    case 'h': return 'H';
-    case 'i': return 'I';
-    case 'j': return 'J';
-    case 'k': return 'K';
-    case 'l': return 'L';
-    case 'm': return 'M';
-    case 'n': return 'N';
-    case 'o': return 'O';
-    case 'p': return 'P';
-    case 'q': return 'Q';
-    case 'r': return 'R';
-    case 's': return 'S';
-    case 't': return 'T';
-    case 'u': return 'U';
-    case 'v': return 'V';
-    case 'w': return 'W';
-    case 'x': return 'X';
-    case 'y': return 'Y';
-    case 'z': return 'Z';
-    default: return c;
-    }
-#endif
-}
index 3a66440..717ae78 100644 (file)
@@ -5,7 +5,7 @@
    <ctype.h> functions' behaviour depends on the current locale set via
    setlocale.
 
-   Copyright (C) 2000-2003, 2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2006, 2008-2016 Free Software Foundation, Inc.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -25,6 +25,13 @@ along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdbool.h>
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
+_GL_INLINE_HEADER_BEGIN
+#ifndef C_CTYPE_INLINE
+# define C_CTYPE_INLINE _GL_INLINE
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -39,38 +46,6 @@ extern "C" {
    characters.  */
 
 
-/* Check whether the ASCII optimizations apply. */
-
-/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that
-   '0', '1', ..., '9' have consecutive integer values.  */
-#define C_CTYPE_CONSECUTIVE_DIGITS 1
-
-#if ('A' <= 'Z') \
-    && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \
-    && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \
-    && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \
-    && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \
-    && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \
-    && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \
-    && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \
-    && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \
-    && ('Y' + 1 == 'Z')
-#define C_CTYPE_CONSECUTIVE_UPPERCASE 1
-#endif
-
-#if ('a' <= 'z') \
-    && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \
-    && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \
-    && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \
-    && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \
-    && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \
-    && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \
-    && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \
-    && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \
-    && ('y' + 1 == 'z')
-#define C_CTYPE_CONSECUTIVE_LOWERCASE 1
-#endif
-
 #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
     && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
     && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
@@ -96,11 +71,84 @@ extern "C" {
     && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
 /* The character set is ASCII or one of its variants or extensions, not EBCDIC.
    Testing the value of '\n' and '\r' is not relevant.  */
-#define C_CTYPE_ASCII 1
+# define C_CTYPE_ASCII 1
+#elif ! (' ' == '\x40' && '0' == '\xf0'                     \
+         && 'A' == '\xc1' && 'J' == '\xd1' && 'S' == '\xe2' \
+         && 'a' == '\x81' && 'j' == '\x91' && 's' == '\xa2')
+# error "Only ASCII and EBCDIC are supported"
 #endif
 
+#if 'A' < 0
+# error "EBCDIC and char is signed -- not supported"
+#endif
+
+/* Cases for control characters.  */
+
+#define _C_CTYPE_CNTRL \
+   case '\a': case '\b': case '\f': case '\n': \
+   case '\r': case '\t': case '\v': \
+   _C_CTYPE_OTHER_CNTRL
+
+/* ASCII control characters other than those with \-letter escapes.  */
+
+#if C_CTYPE_ASCII
+# define _C_CTYPE_OTHER_CNTRL \
+    case '\x00': case '\x01': case '\x02': case '\x03': \
+    case '\x04': case '\x05': case '\x06': case '\x0e': \
+    case '\x0f': case '\x10': case '\x11': case '\x12': \
+    case '\x13': case '\x14': case '\x15': case '\x16': \
+    case '\x17': case '\x18': case '\x19': case '\x1a': \
+    case '\x1b': case '\x1c': case '\x1d': case '\x1e': \
+    case '\x1f': case '\x7f'
+#else
+   /* Use EBCDIC code page 1047's assignments for ASCII control chars;
+      assume all EBCDIC code pages agree about these assignments.  */
+# define _C_CTYPE_OTHER_CNTRL \
+    case '\x00': case '\x01': case '\x02': case '\x03': \
+    case '\x07': case '\x0e': case '\x0f': case '\x10': \
+    case '\x11': case '\x12': case '\x13': case '\x18': \
+    case '\x19': case '\x1c': case '\x1d': case '\x1e': \
+    case '\x1f': case '\x26': case '\x27': case '\x2d': \
+    case '\x2e': case '\x32': case '\x37': case '\x3c': \
+    case '\x3d': case '\x3f'
+#endif
 
-/* Function declarations. */
+/* Cases for lowercase hex letters, and lowercase letters, all offset by N.  */
+
+#define _C_CTYPE_LOWER_A_THRU_F_N(n) \
+   case 'a' + (n): case 'b' + (n): case 'c' + (n): case 'd' + (n): \
+   case 'e' + (n): case 'f' + (n)
+#define _C_CTYPE_LOWER_N(n) \
+   _C_CTYPE_LOWER_A_THRU_F_N(n): \
+   case 'g' + (n): case 'h' + (n): case 'i' + (n): case 'j' + (n): \
+   case 'k' + (n): case 'l' + (n): case 'm' + (n): case 'n' + (n): \
+   case 'o' + (n): case 'p' + (n): case 'q' + (n): case 'r' + (n): \
+   case 's' + (n): case 't' + (n): case 'u' + (n): case 'v' + (n): \
+   case 'w' + (n): case 'x' + (n): case 'y' + (n): case 'z' + (n)
+
+/* Cases for hex letters, digits, lower, punct, and upper.  */
+
+#define _C_CTYPE_A_THRU_F \
+   _C_CTYPE_LOWER_A_THRU_F_N (0): \
+   _C_CTYPE_LOWER_A_THRU_F_N ('A' - 'a')
+#define _C_CTYPE_DIGIT                     \
+   case '0': case '1': case '2': case '3': \
+   case '4': case '5': case '6': case '7': \
+   case '8': case '9'
+#define _C_CTYPE_LOWER _C_CTYPE_LOWER_N (0)
+#define _C_CTYPE_PUNCT \
+   case '!': case '"': case '#': case '$':  \
+   case '%': case '&': case '\'': case '(': \
+   case ')': case '*': case '+': case ',':  \
+   case '-': case '.': case '/': case ':':  \
+   case ';': case '<': case '=': case '>':  \
+   case '?': case '@': case '[': case '\\': \
+   case ']': case '^': case '_': case '`':  \
+   case '{': case '|': case '}': case '~'
+#define _C_CTYPE_UPPER _C_CTYPE_LOWER_N ('A' - 'a')
+
+
+/* Function definitions.  */
 
 /* Unlike the functions in <ctype.h>, which require an argument in the range
    of the 'unsigned char' type, the functions here operate on values that are
@@ -117,178 +165,202 @@ extern "C" {
          if (c_isalpha (*s)) ...
  */
 
-extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */
-
-extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_islower (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST;
-extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST;
-
-extern int c_tolower (int c) _GL_ATTRIBUTE_CONST;
-extern int c_toupper (int c) _GL_ATTRIBUTE_CONST;
-
-
-#if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS
-
-/* ASCII optimizations. */
-
-#undef c_isascii
-#define c_isascii(c) \
-  ({ int __c = (c); \
-     (__c >= 0x00 && __c <= 0x7f); \
-   })
+C_CTYPE_INLINE bool
+c_isalnum (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_DIGIT:
+    _C_CTYPE_LOWER:
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_DIGITS \
-    && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-#undef c_isalnum
-#define c_isalnum(c) \
-  ({ int __c = (c); \
-     ((__c >= '0' && __c <= '9') \
-      || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \
-   })
-#else
-#undef c_isalnum
-#define c_isalnum(c) \
-  ({ int __c = (c); \
-     ((__c >= '0' && __c <= '9') \
-      || (__c >= 'A' && __c <= 'Z') \
-      || (__c >= 'a' && __c <= 'z')); \
-   })
-#endif
-#endif
+C_CTYPE_INLINE bool
+c_isalpha (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_LOWER:
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-#undef c_isalpha
-#define c_isalpha(c) \
-  ({ int __c = (c); \
-     ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \
-   })
-#else
-#undef c_isalpha
-#define c_isalpha(c) \
-  ({ int __c = (c); \
-     ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \
-   })
-#endif
-#endif
+/* The function isascii is not locale dependent.
+   Its use in EBCDIC is questionable. */
+C_CTYPE_INLINE bool
+c_isascii (int c)
+{
+  switch (c)
+    {
+    case ' ':
+    _C_CTYPE_CNTRL:
+    _C_CTYPE_DIGIT:
+    _C_CTYPE_LOWER:
+    _C_CTYPE_PUNCT:
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#undef c_isblank
-#define c_isblank(c) \
-  ({ int __c = (c); \
-     (__c == ' ' || __c == '\t'); \
-   })
+C_CTYPE_INLINE bool
+c_isblank (int c)
+{
+  return c == ' ' || c == '\t';
+}
 
-#if C_CTYPE_ASCII
-#undef c_iscntrl
-#define c_iscntrl(c) \
-  ({ int __c = (c); \
-     ((__c & ~0x1f) == 0 || __c == 0x7f); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_iscntrl (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_CNTRL:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_DIGITS
-#undef c_isdigit
-#define c_isdigit(c) \
-  ({ int __c = (c); \
-     (__c >= '0' && __c <= '9'); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_isdigit (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_DIGIT:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_LOWERCASE
-#undef c_islower
-#define c_islower(c) \
-  ({ int __c = (c); \
-     (__c >= 'a' && __c <= 'z'); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_isgraph (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_DIGIT:
+    _C_CTYPE_LOWER:
+    _C_CTYPE_PUNCT:
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_ASCII
-#undef c_isgraph
-#define c_isgraph(c) \
-  ({ int __c = (c); \
-     (__c >= '!' && __c <= '~'); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_islower (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_LOWER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_ASCII
-#undef c_isprint
-#define c_isprint(c) \
-  ({ int __c = (c); \
-     (__c >= ' ' && __c <= '~'); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_isprint (int c)
+{
+  switch (c)
+    {
+    case ' ':
+    _C_CTYPE_DIGIT:
+    _C_CTYPE_LOWER:
+    _C_CTYPE_PUNCT:
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_ASCII
-#undef c_ispunct
-#define c_ispunct(c) \
-  ({ int _c = (c); \
-     (c_isgraph (_c) && ! c_isalnum (_c)); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_ispunct (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_PUNCT:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#undef c_isspace
-#define c_isspace(c) \
-  ({ int __c = (c); \
-     (__c == ' ' || __c == '\t' \
-      || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \
-   })
-
-#if C_CTYPE_CONSECUTIVE_UPPERCASE
-#undef c_isupper
-#define c_isupper(c) \
-  ({ int __c = (c); \
-     (__c >= 'A' && __c <= 'Z'); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_isspace (int c)
+{
+  switch (c)
+    {
+    case ' ': case '\t': case '\n': case '\v': case '\f': case '\r':
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_DIGITS \
-    && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#if C_CTYPE_ASCII
-#undef c_isxdigit
-#define c_isxdigit(c) \
-  ({ int __c = (c); \
-     ((__c >= '0' && __c <= '9') \
-      || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \
-   })
-#else
-#undef c_isxdigit
-#define c_isxdigit(c) \
-  ({ int __c = (c); \
-     ((__c >= '0' && __c <= '9') \
-      || (__c >= 'A' && __c <= 'F') \
-      || (__c >= 'a' && __c <= 'f')); \
-   })
-#endif
-#endif
+C_CTYPE_INLINE bool
+c_isupper (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_UPPER:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#undef c_tolower
-#define c_tolower(c) \
-  ({ int __c = (c); \
-     (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \
-   })
-#undef c_toupper
-#define c_toupper(c) \
-  ({ int __c = (c); \
-     (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \
-   })
-#endif
+C_CTYPE_INLINE bool
+c_isxdigit (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_DIGIT:
+    _C_CTYPE_A_THRU_F:
+      return true;
+    default:
+      return false;
+    }
+}
 
-#endif /* optimizing for speed */
+C_CTYPE_INLINE int
+c_tolower (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_UPPER:
+      return c - 'A' + 'a';
+    default:
+      return c;
+    }
+}
 
+C_CTYPE_INLINE int
+c_toupper (int c)
+{
+  switch (c)
+    {
+    _C_CTYPE_LOWER:
+      return c - 'a' + 'A';
+    default:
+      return c;
+    }
+}
 
 #ifdef __cplusplus
 }
 #endif
 
+_GL_INLINE_HEADER_END
+
 #endif /* C_CTYPE_H */
index 03db242..baace41 100644 (file)
@@ -1,6 +1,6 @@
 /* Stack overflow handling.
 
-   Copyright (C) 2002, 2004, 2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 2e61bdf..efd3b8f 100644 (file)
@@ -1,6 +1,6 @@
 /* Stack overflow handling.
 
-   Copyright (C) 2002, 2004, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 49e1bb0..7e570f5 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison functions in C locale.
-   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2013 Free Software
+   Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index ef85f0e..bd113b7 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strcasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index afdea26..ed57251 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized case-insensitive string comparison in C locale.
-   Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
@@ -33,9 +33,6 @@
 # if C_CTYPE_ASCII
 #  define CASEEQ(other,upper) \
      (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper))
-# elif C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
-#  define CASEEQ(other,upper) \
-     (c_isupper (upper) ? (other) == (upper) || (other) == (upper) - 'A' + 'a' : (other) == (upper))
 # else
 #  define CASEEQ(other,upper) \
      (c_toupper (other) == (upper))
index 04404b0..c316929 100644 (file)
@@ -1,5 +1,5 @@
 /* c-strncasecmp.c -- case insensitive string comparator in C locale
-   Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e2c19d1..4180de9 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-2013 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 46f88ae..84ede3e 100644 (file)
@@ -1,6 +1,6 @@
 /* Read symbolic links into a buffer without size limitation, relative to fd.
 
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index f620e54..46a7aa5 100644 (file)
@@ -1,5 +1,5 @@
 /* close replacement.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a47cb70..fd34505 100644 (file)
@@ -1,7 +1,7 @@
 /* Buffer primitives for comparison operations.
 
-   Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013 Free Software
-   Foundation, Inc.
+   Copyright (C) 1993, 1995, 1998, 2001-2002, 2006, 2009-2013, 2015-2016 Free
+   Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 732d7ab..b9333d8 100644 (file)
@@ -1,6 +1,6 @@
 /* Buffer primitives for comparison operations.
 
-   Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a991419..947d916 100644 (file)
@@ -1,7 +1,7 @@
 #! /bin/sh
 # Output a system dependent table of character encoding aliases.
 #
-#   Copyright (C) 2000-2004, 2006-2013 Free Software Foundation, Inc.
+#   Copyright (C) 2000-2004, 2006-2016 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -348,12 +348,10 @@ case "$os" in
     #echo "sun_eu_greek ?" # what is this?
     echo "UTF-8 UTF-8"
     ;;
-  freebsd* | os2*)
+  freebsd*)
     # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore
     # localcharset.c falls back to using the full locale name
     # from the environment variables.
-    # Likewise for OS/2. OS/2 has XFree86 just like FreeBSD. Just
-    # reuse FreeBSD's locale data for OS/2.
     echo "C ASCII"
     echo "US-ASCII ASCII"
     for l in la_LN lt_LN; do
index ff0b9d9..651da70 100644 (file)
@@ -29,6 +29,9 @@
 /* Define to 1 if using `alloca.c'. */
 #undef C_ALLOCA
 
+/* Define to 1 if the C locale may have encoding errors. */
+#undef C_LOCALE_MAYBE_EILSEQ
+
 /* Define as the bit index in the word where to find bit 0 of the exponent of
    'double'. */
 #undef DBL_EXPBIT0_BIT
 /* Define this to 1 if F_DUPFD behavior does not match POSIX */
 #undef FCNTL_DUPFD_BUGGY
 
+/* Define to nothing if C supports flexible array members, and to 1 if it does
+   not. That way, with a declaration like 'struct s { int n; double
+   d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
+   compilers. When computing the size of such an object, don't use 'sizeof
+   (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)'
+   instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with
+   MSVC and with C++ compilers. */
+#undef FLEXIBLE_ARRAY_MEMBER
+
 /* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
 #undef FUNC_NL_LANGINFO_YESEXPR_WORKS
 
    whether the gnulib module fscanf shall be considered present. */
 #undef GNULIB_FSCANF
 
-/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
-   whether the gnulib module malloc-gnu shall be considered present. */
-#undef GNULIB_MALLOC_GNU
-
 /* enable some gnulib portability checks */
 #undef GNULIB_PORTCHECK
 
+/* Define to 1 if printf and friends should be labeled with attribute
+   "__gnu_printf__" instead of "__printf__" */
+#undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
+
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module scanf shall be considered present. */
 #undef GNULIB_SCANF
    whether the gnulib module strerror shall be considered present. */
 #undef GNULIB_STRERROR
 
+/* Define to 1 when the gnulib module accept should be tested. */
+#undef GNULIB_TEST_ACCEPT
+
+/* Define to 1 when the gnulib module bind should be tested. */
+#undef GNULIB_TEST_BIND
+
 /* Define to 1 when the gnulib module btowc should be tested. */
 #undef GNULIB_TEST_BTOWC
 
 /* Define to 1 when the gnulib module close should be tested. */
 #undef GNULIB_TEST_CLOSE
 
+/* Define to 1 when the gnulib module connect should be tested. */
+#undef GNULIB_TEST_CONNECT
+
 /* Define to 1 when the gnulib module dup2 should be tested. */
 #undef GNULIB_TEST_DUP2
 
 /* Define to 1 when the gnulib module fstat should be tested. */
 #undef GNULIB_TEST_FSTAT
 
+/* Define to 1 when the gnulib module ftruncate should be tested. */
+#undef GNULIB_TEST_FTRUNCATE
+
 /* Define to 1 when the gnulib module getcwd should be tested. */
 #undef GNULIB_TEST_GETCWD
 
 /* Define to 1 when the gnulib module gettimeofday should be tested. */
 #undef GNULIB_TEST_GETTIMEOFDAY
 
+/* Define to 1 when the gnulib module ioctl should be tested. */
+#undef GNULIB_TEST_IOCTL
+
 /* Define to 1 when the gnulib module iswblank should be tested. */
 #undef GNULIB_TEST_ISWBLANK
 
+/* Define to 1 when the gnulib module listen should be tested. */
+#undef GNULIB_TEST_LISTEN
+
 /* Define to 1 when the gnulib module localeconv should be tested. */
 #undef GNULIB_TEST_LOCALECONV
 
 /* Define to 1 when the gnulib module mktime should be tested. */
 #undef GNULIB_TEST_MKTIME
 
+/* Define to 1 when the gnulib module nanosleep should be tested. */
+#undef GNULIB_TEST_NANOSLEEP
+
 /* Define to 1 when the gnulib module nl_langinfo should be tested. */
 #undef GNULIB_TEST_NL_LANGINFO
 
 /* Define to 1 when the gnulib module open should be tested. */
 #undef GNULIB_TEST_OPEN
 
+/* Define to 1 when the gnulib module perror should be tested. */
+#undef GNULIB_TEST_PERROR
+
+/* Define to 1 when the gnulib module pipe should be tested. */
+#undef GNULIB_TEST_PIPE
+
 /* Define to 1 when the gnulib module putenv should be tested. */
 #undef GNULIB_TEST_PUTENV
 
 /* Define to 1 when the gnulib module raise should be tested. */
 #undef GNULIB_TEST_RAISE
 
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+#undef GNULIB_TEST_RAWMEMCHR
+
 /* Define to 1 when the gnulib module readlink should be tested. */
 #undef GNULIB_TEST_READLINK
 
 /* Define to 1 when the gnulib module secure_getenv should be tested. */
 #undef GNULIB_TEST_SECURE_GETENV
 
+/* Define to 1 when the gnulib module select should be tested. */
+#undef GNULIB_TEST_SELECT
+
 /* Define to 1 when the gnulib module setenv should be tested. */
 #undef GNULIB_TEST_SETENV
 
 /* Define to 1 when the gnulib module setlocale should be tested. */
 #undef GNULIB_TEST_SETLOCALE
 
+/* Define to 1 when the gnulib module 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 snprintf should be tested. */
 #undef GNULIB_TEST_SNPRINTF
 
+/* Define to 1 when the gnulib module socket should be tested. */
+#undef GNULIB_TEST_SOCKET
+
 /* Define to 1 when the gnulib module stat should be tested. */
 #undef GNULIB_TEST_STAT
 
 /* Define to 1 when the gnulib module strerror should be tested. */
 #undef GNULIB_TEST_STRERROR
 
+/* Define to 1 when the gnulib module strerror_r should be tested. */
+#undef GNULIB_TEST_STRERROR_R
+
 /* Define to 1 when the gnulib module strndup should be tested. */
 #undef GNULIB_TEST_STRNDUP
 
 /* Define to 1 when the gnulib module symlink should be tested. */
 #undef GNULIB_TEST_SYMLINK
 
+/* Define to 1 when the gnulib module timegm should be tested. */
+#undef GNULIB_TEST_TIMEGM
+
 /* Define to 1 when the gnulib module time_r should be tested. */
 #undef GNULIB_TEST_TIME_R
 
+/* Define to 1 when the gnulib module time_rz should be tested. */
+#undef GNULIB_TEST_TIME_RZ
+
 /* Define to 1 when the gnulib module unsetenv should be tested. */
 #undef GNULIB_TEST_UNSETENV
 
-/* Define to 1 when the gnulib module usleep should be tested. */
-#undef GNULIB_TEST_USLEEP
-
 /* Define to 1 when the gnulib module vasprintf should be tested. */
 #undef GNULIB_TEST_VASPRINTF
 
 /* Define to 1 if <alloca.h> works. */
 #undef HAVE_ALLOCA_H
 
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
 /* 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. */
 #undef HAVE_BTOWC
 
+/* Define to 1 if nanosleep mishandles large arguments. */
+#undef HAVE_BUG_BIG_NANOSLEEP
+
+/* Define to 1 if you have the `catgets' function. */
+#undef HAVE_CATGETS
+
 /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
    the CoreFoundation framework. */
 #undef HAVE_CFPREFERENCESCOPYAPPVALUE
 
+/* Define to 1 if you have the `chsize' function. */
+#undef HAVE_CHSIZE
+
 /* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
    don't. */
 #undef HAVE_DECL_GETC_UNLOCKED
 
+/* 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 `getenv', and to 0 if you don't.
    */
 #undef HAVE_DECL_GETENV
 
+/* 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
    don't. */
 #undef HAVE_DECL_ISBLANK
 /* Define to 1 if you have the `fork' function. */
 #undef HAVE_FORK
 
+/* Define to 1 if you have the `ftruncate' function. */
+#undef HAVE_FTRUNCATE
+
 /* Define to 1 if you have the `getdtablesize' function. */
 #undef HAVE_GETDTABLESIZE
 
+/* Define to 1 if you have the `getegid' function. */
+#undef HAVE_GETEGID
+
+/* Define to 1 if you have the `geteuid' function. */
+#undef HAVE_GETEUID
+
+/* Define to 1 if you have the `getgid' function. */
+#undef HAVE_GETGID
+
 /* Define to 1 if you have the <getopt.h> header file. */
 #undef HAVE_GETOPT_H
 
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
+/* Define to 1 if you have the `getuid' function. */
+#undef HAVE_GETUID
+
 /* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
 /* 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. */
+#undef HAVE_INET_PTON
+
 /* Define to 1 if the compiler supports one of the keywords 'inline',
    '__inline__', '__inline' and effectively inlines functions marked as such.
    */
    declares uintmax_t. */
 #undef HAVE_INTTYPES_H_WITH_UINTMAX
 
+/* Define to 1 if you have the `ioctl' function. */
+#undef HAVE_IOCTL
+
+/* Define to 1 if <sys/socket.h> defines AF_INET. */
+#undef HAVE_IPV4
+
+/* Define to 1 if <sys/socket.h> defines AF_INET6. */
+#undef HAVE_IPV6
+
 /* Define to 1 if you have the `isblank' function. */
 #undef HAVE_ISBLANK
 
 /* Define to 1 if you have the `lstat' function. */
 #undef HAVE_LSTAT
 
-/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and
-   to 0 otherwise. */
-#undef HAVE_MALLOC_GNU
+/* Define to 1 if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
 
 /* Define if the 'malloc' function is POSIX compliant. */
 #undef HAVE_MALLOC_POSIX
 /* Define to 1 if <wchar.h> declares mbstate_t. */
 #undef HAVE_MBSTATE_T
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define to 1 if you have the `mempcpy' function. */
 #undef HAVE_MEMPCPY
 
 /* 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. */
+#undef HAVE_NETDB_H
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#undef HAVE_NETINET_IN_H
+
 /* Define to 1 if you have the `newlocale' function. */
 #undef HAVE_NEWLOCALE
 
 /* Define to 1 if you have the <OS.h> header file. */
 #undef HAVE_OS_H
 
+/* Define to 1 if you have the `pipe' function. */
+#undef HAVE_PIPE
+
 /* Define to 1 if you have the `raise' function. */
 #undef HAVE_RAISE
 
+/* Define to 1 if you have the `rawmemchr' function. */
+#undef HAVE_RAWMEMCHR
+
+/* Define to 1 if accept is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ACCEPT
+
+/* Define to 1 if accept4 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ACCEPT4
+
 /* Define to 1 if atoll is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ATOLL
 
+/* Define to 1 if bind is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_BIND
+
 /* Define to 1 if btowc is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_BTOWC
 
 /* Define to 1 if chown is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_CHOWN
 
+/* Define to 1 if connect is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CONNECT
+
 /* Define to 1 if dprintf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_DPRINTF
 
 /* Define to 1 if getpagesize is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETPAGESIZE
 
+/* Define to 1 if getpeername is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETPEERNAME
+
 /* Define to 1 if gets is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETS
 
+/* Define to 1 if getsockname is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETSOCKNAME
+
+/* Define to 1 if getsockopt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GETSOCKOPT
+
 /* Define to 1 if getsubopt is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_GETSUBOPT
 
 /* Define to 1 if imaxdiv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_IMAXDIV
 
+/* Define to 1 if inet_ntop is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INET_NTOP
+
+/* Define to 1 if inet_pton is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INET_PTON
+
 /* Define to 1 if initstate is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_INITSTATE
 
 /* Define to 1 if initstate_r is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_INITSTATE_R
 
+/* Define to 1 if ioctl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_IOCTL
+
 /* Define to 1 if isatty is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ISATTY
 
+/* Define to 1 if isblank is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISBLANK
+
 /* Define to 1 if iswctype is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_ISWCTYPE
 
 /* Define to 1 if linkat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LINKAT
 
+/* Define to 1 if listen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_LISTEN
+
 /* Define to 1 if lseek is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_LSEEK
 
 /* Define to 1 if pread is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PREAD
 
+/* Define to 1 if pselect is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PSELECT
+
 /* Define to 1 if pthread_sigmask is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_PTHREAD_SIGMASK
 
 /* Define to 1 if realpath is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_REALPATH
 
+/* Define to 1 if recv is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RECV
+
+/* Define to 1 if recvfrom is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RECVFROM
+
 /* Define to 1 if renameat is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_RENAMEAT
 
 /* Define to 1 if secure_getenv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SECURE_GETENV
 
+/* Define to 1 if select is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SELECT
+
+/* Define to 1 if send is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SEND
+
+/* Define to 1 if sendto is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SENDTO
+
 /* Define to 1 if setenv is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETENV
 
 /* Define to 1 if setlocale is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETLOCALE
 
+/* Define to 1 if setsockopt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETSOCKOPT
+
 /* Define to 1 if setstate is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETSTATE
 
 /* Define to 1 if setusershell is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SETUSERSHELL
 
+/* Define to 1 if shutdown is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SHUTDOWN
+
 /* Define to 1 if sigaction is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SIGACTION
 
 /* Define to 1 if snprintf is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SNPRINTF
 
+/* Define to 1 if socket is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SOCKET
+
 /* Define to 1 if srandom is declared even after undefining macros. */
 #undef HAVE_RAW_DECL_SRANDOM
 
 /* Define to 1 if you have the `readlinkat' function. */
 #undef HAVE_READLINKAT
 
+/* Define to 1 if the system has the type `sa_family_t'. */
+#undef HAVE_SA_FAMILY_T
+
 /* Define to 1 if you have the <search.h> header file. */
 #undef HAVE_SEARCH_H
 
 /* Define to 1 if you have the `secure_getenv' function. */
 #undef HAVE_SECURE_GETENV
 
+/* Define to 1 if you have the `setdtablesize' function. */
+#undef HAVE_SETDTABLESIZE
+
 /* Define to 1 if you have the `setenv' function. */
 #undef HAVE_SETENV
 
 /* Define to 1 if you have the `setrlimit' function. */
 #undef HAVE_SETRLIMIT
 
+/* Define to 1 if you have the `shutdown' function. */
+#undef HAVE_SHUTDOWN
+
 /* Define to 1 if you have the `sigaction' function. */
 #undef HAVE_SIGACTION
 
 /* Define to 1 if you have the <strings.h> header file. */
 #undef HAVE_STRINGS_H
 
-/* Define to 1 if you have the <string.h> header file. */
+/* Always define to 1, for backward compatibility. You can assume <string.h>
+   exists. */
 #undef HAVE_STRING_H
 
 /* Define to 1 if you have the `strncasecmp' function. */
 /* Define to 1 if `sa_sigaction' is a member of `struct sigaction'. */
 #undef HAVE_STRUCT_SIGACTION_SA_SIGACTION
 
+/* 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'. */
+#undef HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY
+
 /* Define to 1 if `st_atimensec' is a member of `struct stat'. */
 #undef HAVE_STRUCT_STAT_ST_ATIMENSEC
 
 /* Define to 1 if you have the <sys/inttypes.h> header file. */
 #undef HAVE_SYS_INTTYPES_H
 
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_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/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
+/* Define to 1 if you have the <sys/select.h> header file. */
+#undef HAVE_SYS_SELECT_H
+
 /* Define to 1 if you have the <sys/socket.h> header file. */
 #undef HAVE_SYS_SOCKET_H
 
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#undef HAVE_SYS_UIO_H
+
 /* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
 #undef HAVE_SYS_WAIT_H
 
+/* Define to 1 if you have the `timegm' function. */
+#undef HAVE_TIMEGM
+
+/* 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 the system has the type 'unsigned long long int'. */
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
-/* Define to 1 if you have the `usleep' function. */
-#undef HAVE_USLEEP
-
 /* Define to 1 if you have the `vasnprintf' function. */
 #undef HAVE_VASNPRINTF
 
 /* Define to 1 if you have the `wcrtomb' function. */
 #undef HAVE_WCRTOMB
 
-/* Define to 1 if you have the `wcscoll' function. */
-#undef HAVE_WCSCOLL
-
 /* Define to 1 if you have the `wcslen' function. */
 #undef HAVE_WCSLEN
 
 /* Define to 1 if `vfork' works. */
 #undef HAVE_WORKING_VFORK
 
+/* Define to 1 if you have the <ws2tcpip.h> header file. */
+#undef HAVE_WS2TCPIP_H
+
 /* Define to 1 if you have the <xlocale.h> header file. */
 #undef HAVE_XLOCALE_H
 
 /* Define to 1 if you have the `__secure_getenv' function. */
 #undef HAVE___SECURE_GETENV
 
+/* 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. */
 #undef ICONV_CONST
 
 /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
 #undef MAP_ANONYMOUS
 
+/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
+   */
+#undef MBRTOWC_EMPTY_INPUT_BUG
+
 /* Define if the mbrtowc function has the NULL pwc argument bug. */
 #undef MBRTOWC_NULL_ARG1_BUG
 
 /* Define if the mbrtowc function returns a wrong return value. */
 #undef MBRTOWC_RETVAL_BUG
 
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
 /* Define to 1 if open() fails to recognize a trailing slash. */
 #undef OPEN_TRAILING_SLASH_BUG
 
 /* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
 #undef STAT_MACROS_BROKEN
 
-/* Define to 1 if you have the ANSI C header files. */
+/* Always define to 1, for backward compatibility. You can assume the C90
+   standard headers exist. */
 #undef STDC_HEADERS
 
 /* Define to 1 if strerror_r returns char *. */
 #undef STRERROR_R_CHAR_P
 
+/* Define to 1 if time_t is signed. */
+#undef TIME_T_IS_SIGNED
+
 /* Define to 1 if your <sys/time.h> declares `struct tm'. */
 #undef TM_IN_SYS_TIME
 
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
 #endif
+/* Use GNU style printf and scanf.  */
+#ifndef __USE_MINGW_ANSI_STDIO
+# undef __USE_MINGW_ANSI_STDIO
+#endif
 /* Enable threading extensions on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
    'wchar_t'. */
 #undef WCHAR_T_SUFFIX
 
+/* Define if WSAStartup is needed. */
+#undef WINDOWS_SOCKETS
+
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'wint_t'. */
 #undef WINT_T_SUFFIX
    this defined. */
 #undef _POSIX_1_SOURCE
 
+/* Define to 1 in order to get the POSIX compatible declarations of socket
+   functions. */
+#undef _POSIX_PII_SOCKET
+
 /* Define to 1 if you need to in order for 'stat' and other things to work. */
 #undef _POSIX_SOURCE
 
    used. */
 #undef __GETOPT_PREFIX
 
-/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'.
-   _GL_EXTERN_INLINE is a portable alternative to 'extern inline'.
-   _GL_INLINE_HEADER_BEGIN contains useful stuff to put
-     in an include file, before uses of _GL_INLINE.
-     It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic,
-     when FOO is an inline function in the header; see
-     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
-   _GL_INLINE_HEADER_END contains useful stuff to put
-     in the same include file, after uses of _GL_INLINE.
+/* Define to 1 if the system <stdint.h> predates C++11. */
+#undef __STDC_CONSTANT_MACROS
+
+/* 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__
+
+/* Please see the Gnulib manual for how to use these macros.
 
    Suppress extern inline with HP-UX cc, as it appears to be broken; see
    <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
 
-   Suppress the use of extern inline on Apple's platforms,
-   as Libc-825.25 (2012-09-19) is incompatible with it; see
-   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
-   Perhaps Apple will fix this some day.  */
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions.  This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.  */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
 #if ((__GNUC__ \
       ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
-      : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \
-     && !defined __APPLE__)
+      : (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
-#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__
-# if __GNUC_GNU_INLINE__
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
    /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
 #  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
 # else
 #  define _GL_INLINE extern inline
 # endif
 # define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
 #else
 # define _GL_INLINE static _GL_UNUSED
 # define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
-#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+/* 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
 /* A replacement for va_copy, if needed.  */
 #define gl_va_copy(a,b) ((a) = (b))
 
-/* Define to rpl_gmtime if the replacement function should be used. */
-#undef gmtime
-
 /* 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
 /* Define to 1 if the compiler is checking for lint. */
 #undef lint
 
-/* Define to rpl_localtime if the replacement function should be used. */
-#undef localtime
-
 /* 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. */
 #undef mode_t
 
 /* Define to `unsigned int' if <sys/types.h> does not define. */
 #undef size_t
 
+/* type to use in place of socklen_t if not defined */
+#undef socklen_t
+
 /* Define as a signed type of the same size as size_t. */
 #undef ssize_t
 
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
 /* The __pure__ attribute was added in gcc 2.96.  */
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
 #endif
 
 
-/* Define to an unsigned 32-bit type if <sys/types.h> lacks this type. */
-#undef useconds_t
-
 /* Define as a macro for copying va_list variables. */
 #undef va_copy
 
diff --git a/lib/ctype.in.h b/lib/ctype.in.h
new file mode 100644 (file)
index 0000000..217812d
--- /dev/null
@@ -0,0 +1,57 @@
+/* A substitute for ISO C99 <ctype.h>, for platforms on which it is incomplete.
+
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Bruno Haible.  */
+
+/*
+ * ISO C 99 <ctype.h> for platforms on which it is incomplete.
+ * <http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html>
+ */
+
+#ifndef _@GUARD_PREFIX@_CTYPE_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* Include the original <ctype.h>.  */
+/* The include_next requires a split double-inclusion guard.  */
+#@INCLUDE_NEXT@ @NEXT_CTYPE_H@
+
+#ifndef _@GUARD_PREFIX@_CTYPE_H
+#define _@GUARD_PREFIX@_CTYPE_H
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
+
+/* The definition of _GL_WARN_ON_USE is copied here.  */
+
+/* Return non-zero if c is a blank, i.e. a space or tab character.  */
+#if @GNULIB_ISBLANK@
+# if !@HAVE_ISBLANK@
+_GL_EXTERN_C int isblank (int c);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef isblank
+# if HAVE_RAW_DECL_ISBLANK
+_GL_WARN_ON_USE (isblank, "isblank is unportable - "
+                 "use gnulib module isblank for portability");
+# endif
+#endif
+
+#endif /* _@GUARD_PREFIX@_CTYPE_H */
+#endif /* _@GUARD_PREFIX@_CTYPE_H */
index 5faaf9a..6be7d83 100644 (file)
@@ -1,6 +1,6 @@
 /* Analyze differences between two vectors.
 
-   Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2013 Free Software
+   Copyright (C) 1988-1989, 1992-1995, 2001-2004, 2006-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    distance" in Wikipedia.
 
    The basic algorithm is described in:
-   "An O(ND) Difference Algorithm and its Variations", Eugene Myers,
-   Algorithmica Vol. 1 No. 2, 1986, pp. 251-266;
-   see especially section 4.2, which describes the variation used below.
+   "An O(ND) Difference Algorithm and its Variations", Eugene W. Myers,
+   Algorithmica Vol. 1, 1986, pp. 251-266,
+   <http://dx.doi.org/10.1007/BF01840446>.
+   See especially section 4.2, which describes the variation used below.
 
    The basic algorithm was independently discovered as described in:
-   "Algorithms for Approximate String Matching", E. Ukkonen,
-   Information and Control Vol. 64, 1985, pp. 100-118.
-
-   Unless the 'find_minimal' flag is set, this code uses the TOO_EXPENSIVE
-   heuristic, by Paul Eggert, to limit the cost to O(N**1.5 log N)
-   at the price of producing suboptimal output for large inputs with
-   many differences.  */
+   "Algorithms for Approximate String Matching", Esko Ukkonen,
+   Information and Control Vol. 64, 1985, pp. 100-118,
+   <http://dx.doi.org/10.1016/S0019-9958(85)80046-2>.  */
 
 /* Before including this file, you need to define:
      ELEMENT                 The element type of the vectors being compared.
      EQUAL                   A two-argument macro that tests two elements for
                              equality.
      OFFSET                  A signed integer type sufficient to hold the
-                             difference between two indices. Usually
-                             something like ssize_t.
+                             difference between two indices.  Usually
+                             something like ptrdiff_t.
      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].
@@ -79,7 +76,7 @@
 /* Use this to suppress gcc's "...may be used before initialized" warnings.
    Beware: The Code argument must not contain commas.  */
 #ifndef IF_LINT
-# ifdef lint
+# if defined GCC_LINT || defined lint
 #  define IF_LINT(Code) Code
 # else
 #  define IF_LINT(Code) /* empty */
@@ -88,7 +85,7 @@
 
 /* As above, but when Code must contain one comma. */
 #ifndef IF_LINT2
-# ifdef lint
+# if defined GCC_LINT || defined lint
 #  define IF_LINT2(Code1, Code2) Code1, Code2
 # else
 #  define IF_LINT2(Code1, Code2) /* empty */
@@ -120,15 +117,12 @@ struct context
   OFFSET *bdiag;
 
   #ifdef USE_HEURISTIC
-  /* This corresponds to the diff -H flag.  With this heuristic, for
-     vectors with a constant small density of changes, the algorithm is
-     linear in the vectors size.  */
+  /* This corresponds to the diff --speed-large-files flag.  With this
+     heuristic, for vectors with a constant small density of changes,
+     the algorithm is linear in the vector size.  */
   bool heuristic;
   #endif
 
-  /* Edit scripts longer than this are too expensive to compute.  */
-  OFFSET too_expensive;
-
   /* Snakes bigger than this are considered "big".  */
   #define SNAKE_LIMIT 20
 };
@@ -138,12 +132,6 @@ struct partition
   /* Midpoints of this partition.  */
   OFFSET xmid;
   OFFSET ymid;
-
-  /* True if low half will be analyzed minimally.  */
-  bool lo_minimal;
-
-  /* Likewise for high half.  */
-  bool hi_minimal;
 };
 
 
@@ -155,17 +143,10 @@ struct partition
    When the two searches meet, we have found the midpoint of the shortest
    edit sequence.
 
-   If FIND_MINIMAL is true, find the minimal edit script regardless of
-   expense.  Otherwise, if the search is too expensive, use heuristics to
-   stop the search and report a suboptimal answer.
-
-   Set PART->(xmid,ymid) to the midpoint (XMID,YMID).  The diagonal number
+   Set *PART to the midpoint (XMID,YMID).  The diagonal number
    XMID - YMID equals the number of inserted elements minus the number
    of deleted elements (counting only elements before the midpoint).
 
-   Set PART->lo_minimal to true iff the minimal edit script for the
-   left half of the partition is known; similarly for PART->hi_minimal.
-
    This function assumes that the first elements of the specified portions
    of the two vectors do not match, and likewise that the last elements do not
    match.  The caller must trim matching elements from the beginning and end
@@ -175,7 +156,7 @@ struct partition
    suboptimal diff output.  It cannot cause incorrect diff output.  */
 
 static void
-diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
+diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim,
       struct partition *part, struct context *ctxt)
 {
   OFFSET *const fd = ctxt->fdiag;       /* Give the compiler a chance. */
@@ -235,7 +216,6 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
             {
               part->xmid = x;
               part->ymid = y;
-              part->lo_minimal = part->hi_minimal = true;
               return;
             }
         }
@@ -268,14 +248,10 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
             {
               part->xmid = x;
               part->ymid = y;
-              part->lo_minimal = part->hi_minimal = true;
               return;
             }
         }
 
-      if (find_minimal)
-        continue;
-
 #ifdef USE_HEURISTIC
       /* Heuristic: check occasionally for a diagonal that has made lots
          of progress compared with the edit distance.  If we have any
@@ -319,11 +295,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
                   }
               }
             if (best > 0)
-              {
-                part->lo_minimal = true;
-                part->hi_minimal = false;
-                return;
-              }
+             return;
           }
 
           {
@@ -358,77 +330,10 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
                   }
               }
             if (best > 0)
-              {
-                part->lo_minimal = false;
-                part->hi_minimal = true;
-                return;
-              }
+             return;
           }
         }
 #endif /* USE_HEURISTIC */
-
-      /* Heuristic: if we've gone well beyond the call of duty, give up
-         and report halfway between our best results so far.  */
-      if (c >= ctxt->too_expensive)
-        {
-          OFFSET fxybest;
-          OFFSET fxbest IF_LINT (= 0);
-          OFFSET bxybest;
-          OFFSET bxbest IF_LINT (= 0);
-
-          /* Find forward diagonal that maximizes X + Y.  */
-          fxybest = -1;
-          for (d = fmax; d >= fmin; d -= 2)
-            {
-              OFFSET x = MIN (fd[d], xlim);
-              OFFSET y = x - d;
-              if (ylim < y)
-                {
-                  x = ylim + d;
-                  y = ylim;
-                }
-              if (fxybest < x + y)
-                {
-                  fxybest = x + y;
-                  fxbest = x;
-                }
-            }
-
-          /* Find backward diagonal that minimizes X + Y.  */
-          bxybest = OFFSET_MAX;
-          for (d = bmax; d >= bmin; d -= 2)
-            {
-              OFFSET x = MAX (xoff, bd[d]);
-              OFFSET y = x - d;
-              if (y < yoff)
-                {
-                  x = yoff + d;
-                  y = yoff;
-                }
-              if (x + y < bxybest)
-                {
-                  bxybest = x + y;
-                  bxbest = x;
-                }
-            }
-
-          /* Use the better of the two diagonals.  */
-          if ((xlim + ylim) - bxybest < fxybest - (xoff + yoff))
-            {
-              part->xmid = fxbest;
-              part->ymid = fxybest - fxbest;
-              part->lo_minimal = true;
-              part->hi_minimal = false;
-            }
-          else
-            {
-              part->xmid = bxbest;
-              part->ymid = bxybest - bxbest;
-              part->lo_minimal = false;
-              part->hi_minimal = true;
-            }
-          return;
-        }
     }
   #undef XREF_YREF_EQUAL
 }
@@ -442,9 +347,6 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
    Note that XLIM, YLIM are exclusive bounds.  All indices into the vectors
    are origin-0.
 
-   If FIND_MINIMAL, find a minimal difference no matter how
-   expensive it is.
-
    The results are recorded by invoking NOTE_DELETE and NOTE_INSERT.
 
    Return false if terminated normally, or true if terminated through early
@@ -452,7 +354,7 @@ diag (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim, bool find_minimal,
 
 static bool
 compareseq (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim,
-            bool find_minimal, struct context *ctxt)
+            struct context *ctxt)
 {
 #ifdef ELEMENT
   ELEMENT const *xv = ctxt->xvec; /* Help the compiler.  */
@@ -498,12 +400,12 @@ compareseq (OFFSET xoff, OFFSET xlim, OFFSET yoff, OFFSET ylim,
       struct partition part IF_LINT2 (= { .xmid = 0, .ymid = 0 });
 
       /* Find a point of correspondence in the middle of the vectors.  */
-      diag (xoff, xlim, yoff, ylim, find_minimal, &part, ctxt);
+      diag (xoff, xlim, yoff, ylim, &part, ctxt);
 
       /* Use the partitions to split this problem into subproblems.  */
-      if (compareseq (xoff, part.xmid, yoff, part.ymid, part.lo_minimal, ctxt))
+      if (compareseq (xoff, part.xmid, yoff, part.ymid, ctxt))
         return true;
-      if (compareseq (part.xmid, xlim, part.ymid, ylim, part.hi_minimal, ctxt))
+      if (compareseq (part.xmid, xlim, part.ymid, ylim, ctxt))
         return true;
     }
 
index 82f6630..a7aabf9 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-2013 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 1fb6588..07aac13 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-2013 Free Software
+   Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 4ad0312..875b31b 100644 (file)
@@ -1,6 +1,6 @@
 /*  Take file names apart into directory and base names.
 
-    Copyright (C) 1998, 2001, 2003-2006, 2009-2013 Free Software Foundation,
+    Copyright (C) 1998, 2001, 2003-2006, 2009-2016 Free Software Foundation,
     Inc.
 
     This program is free software: you can redistribute it and/or modify
 #  define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
 # endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 # if GNULIB_DIRNAME
 char *base_name (char const *file);
 char *dir_name (char const *file);
@@ -43,4 +47,8 @@ char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
 
 bool strip_trailing_slashes (char *file);
 
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
 #endif /* not DIRNAME_H_ */
index ba63ce4..83a953f 100644 (file)
@@ -1,6 +1,6 @@
 /* File names on MS-DOS/Windows systems.
 
-   Copyright (C) 2000-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2000-2001, 2004-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9219eb3..5d026f2 100644 (file)
@@ -1,6 +1,6 @@
 /* Duplicate an open file descriptor to a specified file descriptor.
 
-   Copyright (C) 1999, 2004-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2004-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -85,6 +85,57 @@ ms_windows_dup2 (int fd, int desired_fd)
 
 #  define dup2 ms_windows_dup2
 
+# elif defined __KLIBC__
+
+#  include <InnoTekLIBC/backend.h>
+
+static int
+klibc_dup2dirfd (int fd, int desired_fd)
+{
+  int tempfd;
+  int dupfd;
+
+  tempfd = open ("NUL", O_RDONLY);
+  if (tempfd == -1)
+    return -1;
+
+  if (tempfd == desired_fd)
+    {
+      close (tempfd);
+
+      char path[_MAX_PATH];
+      if (__libc_Back_ioFHToPath (fd, path, sizeof (path)))
+        return -1;
+
+      return open(path, O_RDONLY);
+    }
+
+  dupfd = klibc_dup2dirfd (fd, desired_fd);
+
+  close (tempfd);
+
+  return dupfd;
+}
+
+static int
+klibc_dup2 (int fd, int desired_fd)
+{
+  int dupfd;
+  struct stat sbuf;
+
+  dupfd = dup2 (fd, desired_fd);
+  if (dupfd == -1 && errno == ENOTSUP \
+      && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+    {
+      close (desired_fd);
+
+      return klibc_dup2dirfd (fd, desired_fd);
+    }
+
+  return dupfd;
+}
+
+#  define dup2 klibc_dup2
 # endif
 
 int
@@ -96,7 +147,11 @@ rpl_dup2 (int fd, int desired_fd)
   /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
      On Cygwin 1.5.x, dup2 (1, 1) returns 0.
      On Cygwin 1.7.17, dup2 (1, -1) dumps core.
+     On Cygwin 1.7.25, dup2 (1, 256) can dump core.
      On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC.  */
+#  if HAVE_SETDTABLESIZE
+  setdtablesize (desired_fd + 1);
+#  endif
   if (desired_fd < 0)
     fd = desired_fd;
   if (fd == desired_fd)
index 49b3546..b8397ee 100644 (file)
@@ -1,6 +1,6 @@
 /* A POSIX-like <errno.h>.
 
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 865b293..56ac889 100644 (file)
@@ -1,5 +1,5 @@
 /* Error handler for noninteractive utilities
-   Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1990-1998, 2000-2007, 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
@@ -39,6 +39,9 @@
 # include <stdint.h>
 # include <wchar.h>
 # define mbsrtowcs __mbsrtowcs
+# define USE_UNLOCKED_IO 0
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(a, b)
+# define _GL_ARG_NONNULL(a)
 #endif
 
 #if USE_UNLOCKED_IO
@@ -72,14 +75,14 @@ extern void __error (int status, int errnum, const char *message, ...)
 extern void __error_at_line (int status, int errnum, const char *file_name,
                              unsigned int line_number, const char *message,
                              ...)
-     __attribute__ ((__format__ (__printf__, 5, 6)));;
+     __attribute__ ((__format__ (__printf__, 5, 6)));
 # define error __error
 # define error_at_line __error_at_line
 
 # include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
+# define fflush(s) _IO_fflush (s)
 # undef putc
-# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+# define putc(c, fp) _IO_putc (c, fp)
 
 # include <bits/libc-lock.h>
 
@@ -171,7 +174,7 @@ print_errno_message (int errnum)
 
 #if defined HAVE_STRERROR_R || _LIBC
   char errbuf[1024];
-# if STRERROR_R_CHAR_P || _LIBC
+# if _LIBC || STRERROR_R_CHAR_P
   s = __strerror_r (errnum, errbuf, sizeof errbuf);
 # else
   if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
@@ -195,13 +198,12 @@ print_errno_message (int errnum)
 #endif
 }
 
-static void
+static void _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))
 error_tail (int status, int errnum, const char *message, va_list args)
 {
 #if _LIBC
   if (_IO_fwide (stderr, 0) > 0)
     {
-# define ALLOCA_LIMIT 2000
       size_t len = strlen (message) + 1;
       wchar_t *wmessage = NULL;
       mbstate_t st;
@@ -237,7 +239,7 @@ error_tail (int status, int errnum, const char *message, va_list args)
           if (res != len)
             break;
 
-          if (__builtin_expect (len >= SIZE_MAX / 2, 0))
+          if (__builtin_expect (len >= SIZE_MAX / sizeof (wchar_t) / 2, 0))
             {
               /* This really should not happen if everything is fine.  */
               res = (size_t) -1;
@@ -342,7 +344,10 @@ error_at_line (int status, int errnum, const char *file_name,
 
       if (old_line_number == line_number
           && (file_name == old_file_name
-              || strcmp (old_file_name, file_name) == 0))
+              || (old_file_name != NULL
+                  && file_name != NULL
+                  && strcmp (old_file_name, file_name) == 0)))
+
         /* Simply return and print nothing.  */
         return;
 
@@ -374,10 +379,10 @@ error_at_line (int status, int errnum, const char *file_name,
     }
 
 #if _LIBC
-  __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ",
+  __fxprintf (NULL, file_name != NULL ? "%s:%u: " : " ",
               file_name, line_number);
 #else
-  fprintf (stderr, file_name != NULL ? "%s:%d: " : " ",
+  fprintf (stderr, file_name != NULL ? "%s:%u: " : " ",
            file_name, line_number);
 #endif
 
index afcb0e1..6a69db0 100644 (file)
@@ -1,5 +1,5 @@
 /* Declaration for error-reporting function
-   Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation,
+   Copyright (C) 1995-1997, 2003, 2006, 2008-2016 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
 # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
 #endif
 
+/* On mingw, the flavor of printf depends on whether the extensions module
+ * is in use; the check for <stdio.h> determines the witness macro.  */
+#ifndef _GL_ATTRIBUTE_SPEC_PRINTF
+# if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
+#  define _GL_ATTRIBUTE_SPEC_PRINTF __gnu_printf__
+# else
+#  define _GL_ATTRIBUTE_SPEC_PRINTF __printf__
+# endif
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -40,11 +50,11 @@ extern "C" {
    If STATUS is nonzero, terminate the program with 'exit (STATUS)'.  */
 
 extern void error (int __status, int __errnum, const char *__format, ...)
-     _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4));
+     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 3, 4));
 
 extern void error_at_line (int __status, int __errnum, const char *__fname,
                            unsigned int __lineno, const char *__format, ...)
-     _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6));
+     _GL_ATTRIBUTE_FORMAT ((_GL_ATTRIBUTE_SPEC_PRINTF, 5, 6));
 
 /* If NULL, error will flush stdout, then print on stderr the program
    name, a colon and a space.  Otherwise, error will call this
index a7dd9b3..92dacc4 100644 (file)
@@ -1,6 +1,6 @@
 /* exclude.c -- exclude file names
 
-   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2013 Free Software
+   Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -32,6 +32,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <wctype.h>
+#include <regex.h>
 
 #include "exclude.h"
 #include "hash.h"
@@ -39,6 +40,7 @@
 #include "fnmatch.h"
 #include "xalloc.h"
 #include "verify.h"
+#include "filename.h"
 
 #if USE_UNLOCKED_IO
 # include "unlocked-io.h"
@@ -73,8 +75,12 @@ verify (((EXCLUDE_ANCHORED | EXCLUDE_INCLUDE | EXCLUDE_WILDCARDS)
 
 struct patopts
   {
-    char const *pattern;
     int options;
+    union
+    {
+      char const *pattern;
+      regex_t re;
+    } v;
   };
 
 /* An array of pattern-options pairs.  */
@@ -104,13 +110,33 @@ struct exclude_segment
     } v;
   };
 
+struct pattern_buffer
+  {
+    struct pattern_buffer *next;
+    char *base;
+  };
+
 /* The exclude structure keeps a singly-linked list of exclude segments,
    maintained in reverse order.  */
 struct exclude
   {
     struct exclude_segment *head;
+    struct pattern_buffer *patbuf;
   };
 
+/* Register BUF in the pattern buffer list of EX.  ADD_FUNC (see
+   add_exclude_file and add_exclude_fp below) can use this function
+   if it modifies the pattern, to ensure the allocated memory will be
+   properly reclaimed upon calling free_exclude. */
+void
+exclude_add_pattern_buffer (struct exclude *ex, char *buf)
+{
+  struct pattern_buffer *pbuf = xmalloc (sizeof *pbuf);
+  pbuf->base = buf;
+  pbuf->next = ex->patbuf;
+  ex->patbuf = pbuf;
+}
+
 /* Return true if STR has or may have wildcards, when matched with OPTIONS.
    Return false if STR definitely does not have wildcards.  */
 bool
@@ -120,8 +146,20 @@ fnmatch_pattern_has_wildcards (const char *str, int options)
     {
       switch (*str++)
         {
+       case '.':
+       case '{':
+       case '}':
+       case '(':
+       case ')':
+         if (options & EXCLUDE_REGEX)
+           return true;
+         break;
+
         case '\\':
-          str += ! (options & FNM_NOESCAPE) && *str;
+         if (options & EXCLUDE_REGEX)
+           continue;
+         else
+           str += ! (options & FNM_NOESCAPE) && *str;
           break;
 
         case '+': case '@': case '!':
@@ -243,9 +281,16 @@ new_exclude_segment (struct exclude *ex, enum exclude_type type, int options)
 static void
 free_exclude_segment (struct exclude_segment *seg)
 {
+  size_t i;
+
   switch (seg->type)
     {
     case exclude_pattern:
+      for (i = 0; i < seg->v.pat.exclude_count; i++)
+       {
+         if (seg->v.pat.exclude[i].options & EXCLUDE_REGEX)
+           regfree (&seg->v.pat.exclude[i].v.re);
+       }
       free (seg->v.pat.exclude);
       break;
 
@@ -261,12 +306,23 @@ void
 free_exclude (struct exclude *ex)
 {
   struct exclude_segment *seg;
+  struct pattern_buffer *pbuf;
+
   for (seg = ex->head; seg; )
     {
       struct exclude_segment *next = seg->next;
       free_exclude_segment (seg);
       seg = next;
     }
+
+  for (pbuf = ex->patbuf; pbuf; )
+    {
+      struct pattern_buffer *next = pbuf->next;
+      free (pbuf->base);
+      free (pbuf);
+      pbuf = next;
+    }
+
   free (ex);
 }
 
@@ -331,11 +387,21 @@ exclude_fnmatch (char const *pattern, char const *f, int options)
   if (! (options & EXCLUDE_ANCHORED))
     for (p = f; *p && ! matched; p++)
       if (*p == '/' && p[1] != '/')
-        matched = ((*matcher) (pattern, p + 1, options) == 0);
+       matched = ((*matcher) (pattern, p + 1, options) == 0);
 
   return matched;
 }
 
+static bool
+exclude_patopts (struct patopts const *opts, char const *f)
+{
+  int options = opts->options;
+
+  return (options & EXCLUDE_REGEX)
+          ? regexec (&opts->v.re, f, 0, NULL, 0) == 0
+          : exclude_fnmatch (opts->v.pattern, f, options);
+}
+
 /* Return true if the exclude_pattern segment SEG matches F.  */
 
 static bool
@@ -347,9 +413,7 @@ file_pattern_matches (struct exclude_segment const *seg, char const *f)
 
   for (i = 0; i < exclude_count; i++)
     {
-      char const *pattern = exclude[i].pattern;
-      int options = exclude[i].options;
-      if (exclude_fnmatch (pattern, f, options))
+      if (exclude_patopts (exclude + i, f))
         return true;
     }
   return false;
@@ -454,17 +518,17 @@ void
 add_exclude (struct exclude *ex, char const *pattern, int options)
 {
   struct exclude_segment *seg;
+  struct exclude_pattern *pat;
+  struct patopts *patopts;
 
-  if ((options & EXCLUDE_WILDCARDS)
+  if ((options & (EXCLUDE_REGEX|EXCLUDE_WILDCARDS))
       && fnmatch_pattern_has_wildcards (pattern, options))
     {
-      struct exclude_pattern *pat;
-      struct patopts *patopts;
-
       if (! (ex->head && ex->head->type == exclude_pattern
-             && ((ex->head->options & EXCLUDE_INCLUDE)
-                 == (options & EXCLUDE_INCLUDE))))
-        new_exclude_segment (ex, exclude_pattern, options);
+            && ((ex->head->options & EXCLUDE_INCLUDE)
+                == (options & EXCLUDE_INCLUDE))))
+       new_exclude_segment (ex, exclude_pattern, options);
+
       seg = ex->head;
 
       pat = &seg->v.pat;
@@ -472,8 +536,51 @@ add_exclude (struct exclude *ex, char const *pattern, int options)
         pat->exclude = x2nrealloc (pat->exclude, &pat->exclude_alloc,
                                    sizeof *pat->exclude);
       patopts = &pat->exclude[pat->exclude_count++];
-      patopts->pattern = pattern;
+
       patopts->options = options;
+      if (options & EXCLUDE_REGEX)
+       {
+         int rc;
+         int cflags = REG_NOSUB|REG_EXTENDED|
+                      ((options & FNM_CASEFOLD) ? REG_ICASE : 0);
+
+         if (options & FNM_LEADING_DIR)
+           {
+             char *tmp;
+             size_t len = strlen (pattern);
+
+             while (len > 0 && ISSLASH (pattern[len-1]))
+               --len;
+
+             if (len == 0)
+               rc = 1;
+             else
+               {
+                 tmp = xmalloc (len + 7);
+                 memcpy (tmp, pattern, len);
+                 strcpy (tmp + len, "(/.*)?");
+                 rc = regcomp (&patopts->v.re, tmp, cflags);
+                 free (tmp);
+               }
+           }
+         else
+           rc = regcomp (&patopts->v.re, pattern, cflags);
+
+         if (rc)
+           {
+             pat->exclude_count--;
+             return;
+           }
+       }
+      else
+       {
+         if (options & EXCLUDE_ALLOC)
+           {
+             pattern = xstrdup (pattern);
+             exclude_add_pattern_buffer (ex, (char*) pattern);
+           }
+         patopts->v.pattern = pattern;
+       }
     }
   else
     {
@@ -498,45 +605,39 @@ 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 FILE.  Return -1 on failure, 0 on success.  */
+   lines in FP.  Return -1 on failure, 0 on success.  */
 
 int
-add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
-                  struct exclude *ex, char const *file_name, int options,
-                  char line_end)
+add_exclude_fp (void (*add_func) (struct exclude *, char const *, int, void *),
+               struct exclude *ex, FILE *fp, int options,
+               char line_end,
+               void *data)
 {
-  bool use_stdin = file_name[0] == '-' && !file_name[1];
-  FILE *in;
   char *buf = NULL;
   char *p;
-  char const *pattern;
+  char *pattern;
   char const *lim;
   size_t buf_alloc = 0;
   size_t buf_count = 0;
   int c;
   int e = 0;
 
-  if (use_stdin)
-    in = stdin;
-  else if (! (in = fopen (file_name, "r")))
-    return -1;
-
-  while ((c = getc (in)) != EOF)
+  while ((c = getc (fp)) != EOF)
     {
       if (buf_count == buf_alloc)
         buf = x2realloc (buf, &buf_alloc);
       buf[buf_count++] = c;
     }
 
-  if (ferror (in))
-    e = errno;
-
-  if (!use_stdin && fclose (in) != 0)
+  if (ferror (fp))
     e = errno;
 
   buf = xrealloc (buf, buf_count + 1);
   buf[buf_count] = line_end;
   lim = buf + buf_count + ! (buf_count == 0 || buf[buf_count - 1] == line_end);
+
+  exclude_add_pattern_buffer (ex, buf);
+
   pattern = buf;
 
   for (p = buf; p < lim; p++)
@@ -554,7 +655,7 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
           }
 
         *pattern_end = '\0';
-        (*add_func) (ex, pattern, options);
+        (*add_func) (ex, pattern, options, data);
 
       next_pattern:
         pattern = p + 1;
@@ -563,3 +664,32 @@ add_exclude_file (void (*add_func) (struct exclude *, char const *, int),
   errno = e;
   return e ? -1 : 0;
 }
+
+static void
+call_addfn (struct exclude *ex, char const *pattern, int options, void *data)
+{
+  void (**addfnptr) (struct exclude *, char const *, int) = data;
+  (*addfnptr) (ex, pattern, options);
+}
+
+int
+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 (use_stdin)
+    in = stdin;
+  else if (! (in = fopen (file_name, "r")))
+    return -1;
+
+  rc = add_exclude_fp (call_addfn, ex, in, options, line_end, &add_func);
+
+  if (!use_stdin && fclose (in) != 0)
+    rc = -1;
+
+  return rc;
+}
index f76b153..8cb8b36 100644 (file)
@@ -1,6 +1,6 @@
 /* exclude.h -- declarations for excluding file names
 
-   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2013 Free
+   Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2016 Free
    Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -20,6 +20,7 @@
 #define _GL_EXCLUDE_H 1
 
 #include <stdbool.h>
+#include <stdio.h>
 
 /* Written by Paul Eggert <eggert@twinsun.com>
    and Sergey Poznyakoff <gray@gnu.org> */
    option, these characters are ordinary and fnmatch is not used.  */
 #define EXCLUDE_WILDCARDS (1 << 28)
 
+/* Patterns are POSIX extended regular expressions */
+#define EXCLUDE_REGEX     (1 << 27)
+
+/* Allocate storage for the pattern */
+#define EXCLUDE_ALLOC     (1 << 26)
+
 struct exclude;
 
 bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE;
@@ -46,7 +53,10 @@ void free_exclude (struct exclude *);
 void add_exclude (struct exclude *, char const *, int);
 int add_exclude_file (void (*) (struct exclude *, char const *, int),
                       struct exclude *, char const *, int, char);
+int add_exclude_fp (void (*) (struct exclude *, char const *, int, void *),
+                   struct exclude *, FILE *, int, char, void *);
 bool excluded_file_name (struct exclude const *, char const *);
-bool exclude_fnmatch (char const *pattern, char const *f, int options);
+void exclude_add_pattern_buffer (struct exclude *ex, char *buf);
+bool exclude_fnmatch (char const *, char const *, int);
 
 #endif /* _GL_EXCLUDE_H */
index b0b4ebe..8033c22 100644 (file)
@@ -1,6 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e54333b..62311bd 100644 (file)
@@ -1,6 +1,6 @@
 /* Failure exit status
 
-   Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 735fa66..fd17e96 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide file descriptor control.
 
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -89,8 +89,25 @@ dupfd (int oldfd, int newfd, int flags)
                             inherit,                /* InheritHandle */
                             DUPLICATE_SAME_ACCESS)) /* Options */
         {
-          /* TODO: Translate GetLastError () into errno.  */
-          errno = EMFILE;
+          switch (GetLastError ())
+            {
+              case ERROR_TOO_MANY_OPEN_FILES:
+                errno = EMFILE;
+                break;
+              case ERROR_INVALID_HANDLE:
+              case ERROR_INVALID_TARGET_HANDLE:
+              case ERROR_DIRECT_ACCESS_HANDLE:
+                errno = EBADF;
+                break;
+              case ERROR_INVALID_PARAMETER:
+              case ERROR_INVALID_FUNCTION:
+              case ERROR_INVALID_ACCESS:
+                errno = EINVAL;
+                break;
+              default:
+                errno = EACCES;
+                break;
+            }
           result = -1;
           break;
         }
@@ -98,7 +115,6 @@ dupfd (int oldfd, int newfd, int flags)
       if (duplicated_fd < 0)
         {
           CloseHandle (new_handle);
-          errno = EMFILE;
           result = -1;
           break;
         }
@@ -146,6 +162,93 @@ dupfd (int oldfd, int newfd, int flags)
 }
 #endif /* W32 */
 
+#ifdef __KLIBC__
+
+# define INCL_DOS
+# include <os2.h>
+
+static int
+klibc_fcntl (int fd, int action, /* arg */...)
+{
+  va_list arg_ptr;
+  int arg;
+  struct stat sbuf;
+  int result = -1;
+
+  va_start (arg_ptr, action);
+  arg = va_arg (arg_ptr, int);
+  result = fcntl (fd, action, arg);
+  /* EPERM for F_DUPFD, ENOTSUP for others */
+  if (result == -1 && (errno == EPERM || errno == ENOTSUP)
+      && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode))
+  {
+    ULONG ulMode;
+
+    switch (action)
+      {
+      case F_DUPFD:
+        /* Find available fd */
+        while (fcntl (arg, F_GETFL) != -1 || errno != EBADF)
+          arg++;
+
+        result = dup2 (fd, arg);
+        break;
+
+      /* Using underlying APIs is right ? */
+      case F_GETFD:
+        if (DosQueryFHState (fd, &ulMode))
+          break;
+
+        result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0;
+        break;
+
+      case F_SETFD:
+        if (arg & ~FD_CLOEXEC)
+          break;
+
+        if (DosQueryFHState (fd, &ulMode))
+          break;
+
+        if (arg & FD_CLOEXEC)
+          ulMode |= OPEN_FLAGS_NOINHERIT;
+        else
+          ulMode &= ~OPEN_FLAGS_NOINHERIT;
+
+        /* Filter supported flags.  */
+        ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR
+                   | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT);
+
+        if (DosSetFHState (fd, ulMode))
+          break;
+
+        result = 0;
+        break;
+
+      case F_GETFL:
+        result = 0;
+        break;
+
+      case F_SETFL:
+        if (arg != 0)
+          break;
+
+        result = 0;
+        break;
+
+      default :
+        errno = EINVAL;
+        break;
+      }
+  }
+
+  va_end (arg_ptr);
+
+  return result;
+}
+
+# define fcntl klibc_fcntl
+#endif
+
 /* Perform the specified ACTION on the file descriptor FD, possibly
    using the argument ARG further described below.  This replacement
    handles the following actions, and forwards all others on to the
index 1e45a65..b943973 100644 (file)
@@ -1,6 +1,6 @@
 /* Like <fcntl.h>, but with non-working flags defined to 0.
 
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -34,7 +34,7 @@
    extern "C" { ... } block, which leads to errors in C++ mode with the
    overridden <sys/stat.h> from gnulib.  These errors are known to be gone
    with g++ version >= 4.3.  */
-#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
 # include <sys/stat.h>
 #endif
 #@INCLUDE_NEXT@ @NEXT_FCNTL_H@
@@ -53,7 +53,7 @@
    extern "C" { ... } block, which leads to errors in C++ mode with the
    overridden <sys/stat.h> from gnulib.  These errors are known to be gone
    with g++ version >= 4.3.  */
-#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && (defined __ICC || !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))))
 # include <sys/stat.h>
 #endif
 /* The include_next requires a split double-inclusion guard.  */
@@ -186,6 +186,22 @@ _GL_WARN_ON_USE (openat, "openat is not portable - "
 
 /* Fix up the O_* macros.  */
 
+/* AIX 7.1 with XL C 12.1 defines O_CLOEXEC, O_NOFOLLOW, and O_TTY_INIT
+   to values outside 'int' range, so omit these misdefinitions.
+   But avoid namespace pollution on non-AIX systems.  */
+#ifdef _AIX
+# include <limits.h>
+# if defined O_CLOEXEC && ! (INT_MIN <= O_CLOEXEC && O_CLOEXEC <= INT_MAX)
+#  undef O_CLOEXEC
+# endif
+# if defined O_NOFOLLOW && ! (INT_MIN <= O_NOFOLLOW && O_NOFOLLOW <= INT_MAX)
+#  undef O_NOFOLLOW
+# endif
+# if defined O_TTY_INIT && ! (INT_MIN <= O_TTY_INIT && O_TTY_INIT <= INT_MAX)
+#  undef O_TTY_INIT
+# endif
+#endif
+
 #if !defined O_DIRECT && defined O_DIRECTIO
 /* Tru64 spells it 'O_DIRECTIO'.  */
 # define O_DIRECT O_DIRECTIO
index e158a52..8676c6b 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2009.
 
    This program is free software: you can redistribute it and/or modify it
index d15b577..9568d07 100644 (file)
@@ -1,5 +1,5 @@
 /* Hook for making making file descriptor functions close(), ioctl() extensible.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 0d54269..b405133 100644 (file)
@@ -1,6 +1,6 @@
 /* Return a string describing the type of a file.
 
-   Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2013 Free Software
+   Copyright (C) 1993-1994, 2001-2002, 2004-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -34,26 +34,19 @@ file_type (struct stat const *st)
      To keep diagnostics grammatical in English, the returned string
      must start with a consonant.  */
 
+  /* Do these three first, as they're the most common.  */
+
   if (S_ISREG (st->st_mode))
     return st->st_size == 0 ? _("regular empty file") : _("regular file");
 
   if (S_ISDIR (st->st_mode))
     return _("directory");
 
-  if (S_ISBLK (st->st_mode))
-    return _("block special file");
-
-  if (S_ISCHR (st->st_mode))
-    return _("character special file");
-
-  if (S_ISFIFO (st->st_mode))
-    return _("fifo");
-
   if (S_ISLNK (st->st_mode))
     return _("symbolic link");
 
-  if (S_ISSOCK (st->st_mode))
-    return _("socket");
+  /* Do the S_TYPEIS* macros next, as they may be implemented in terms
+     of S_ISNAM, and we want the more-specialized interpretation.  */
 
   if (S_TYPEISMQ (st))
     return _("message queue");
@@ -67,5 +60,52 @@ file_type (struct stat const *st)
   if (S_TYPEISTMO (st))
     return _("typed memory object");
 
+  /* The remaining are in alphabetical order.  */
+
+  if (S_ISBLK (st->st_mode))
+    return _("block special file");
+
+  if (S_ISCHR (st->st_mode))
+    return _("character special file");
+
+  if (S_ISCTG (st->st_mode))
+    return _("contiguous data");
+
+  if (S_ISFIFO (st->st_mode))
+    return _("fifo");
+
+  if (S_ISDOOR (st->st_mode))
+    return _("door");
+
+  if (S_ISMPB (st->st_mode))
+    return _("multiplexed block special file");
+
+  if (S_ISMPC (st->st_mode))
+    return _("multiplexed character special file");
+
+  if (S_ISMPX (st->st_mode))
+    return _("multiplexed file");
+
+  if (S_ISNAM (st->st_mode))
+    return _("named file");
+
+  if (S_ISNWK (st->st_mode))
+    return _("network special file");
+
+  if (S_ISOFD (st->st_mode))
+    return _("migrated file with data");
+
+  if (S_ISOFL (st->st_mode))
+    return _("migrated file without data");
+
+  if (S_ISPORT (st->st_mode))
+    return _("port");
+
+  if (S_ISSOCK (st->st_mode))
+    return _("socket");
+
+  if (S_ISWHT (st->st_mode))
+    return _("whiteout");
+
   return _("weird file");
 }
index 9c6ac26..0933f7a 100644 (file)
@@ -1,6 +1,6 @@
 /* Return a string describing the type of a file.
 
-   Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2013 Free Software
+   Copyright (C) 1993-1994, 2001-2002, 2004-2005, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
diff --git a/lib/filename.h b/lib/filename.h
new file mode 100644 (file)
index 0000000..7d2c31a
--- /dev/null
@@ -0,0 +1,54 @@
+/* Basic filename support macros.
+   Copyright (C) 2001-2004, 2007-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _FILENAME_H
+#define _FILENAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Pathname support.
+   ISSLASH(C)           tests whether C is a directory separator character.
+   IS_ABSOLUTE_PATH(P)  tests whether P is an absolute path.  If it is not,
+                        it may be concatenated to a directory pathname.
+   IS_PATH_WITH_DIR(P)  tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+  /* Native Windows, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+    ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+     && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+    (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+#else
+  /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+# define FILE_SYSTEM_PREFIX_LEN(P) 0
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FILENAME_H */
index 60c4988..4903fbf 100644 (file)
@@ -1,6 +1,6 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8809b57..06cfeae 100644 (file)
@@ -1,6 +1,6 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1996-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1476e14..791a0af 100644 (file)
@@ -1,6 +1,6 @@
 /* Concatenate two arbitrary file names.
 
-   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2013 Free Software
+   Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 32fb790..00fcc76 100644 (file)
@@ -1,5 +1,5 @@
 /* Supplemental information about the floating-point formats.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software; you can redistribute it and/or modify
index 366945f..1bad2ee 100644 (file)
@@ -1,5 +1,5 @@
 /* Auxiliary definitions for <float.h>.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index 84e1950..0b93d90 100644 (file)
@@ -1,6 +1,6 @@
 /* A correct <float.h>.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6a09e1a..cae3020 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993, 1996-2007, 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d39ce2f..890ee56 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2013 Free
+/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2016 Free
    Software Foundation, Inc.
 
    This file is part of the GNU C Library.
index f57cd63..e613c91 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-1993, 1996-2006, 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1993, 1996-2006, 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software; you can redistribute it and/or modify
@@ -227,6 +227,8 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
             c = *p++;
             for (;;)
               {
+               bool is_range = false;
+
                 if (!(flags & FNM_NOESCAPE) && c == L_('\\'))
                   {
                     if (*p == L_('\0'))
@@ -420,8 +422,6 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                   }
                 else
                   {
-                    bool is_range = false;
-
 #ifdef _LIBC
                     bool is_seqval = false;
 
index 9fe403b..0704c16 100644 (file)
@@ -1,6 +1,6 @@
 /* Invoke freopen, but avoid some glitches.
 
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b581261..4cf7528 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a stream to a file.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This 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,6 +26,8 @@
 #include <stdio.h>
 #undef __need_FILE
 
+#include <errno.h>
+
 static FILE *
 orig_freopen (const char *filename, const char *mode, FILE *stream)
 {
@@ -42,10 +44,24 @@ orig_freopen (const char *filename, const char *mode, FILE *stream)
 FILE *
 rpl_freopen (const char *filename, const char *mode, FILE *stream)
 {
+  FILE *result;
+
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
   if (filename != NULL && strcmp (filename, "/dev/null") == 0)
     filename = "NUL";
 #endif
 
-  return orig_freopen (filename, mode, stream);
+  /* Clear errno to check the success of freopen() with it */
+  errno = 0;
+
+  result = orig_freopen (filename, mode, stream);
+
+#ifdef __KLIBC__
+  /* On OS/2 kLIBC, freopen() returns NULL even if it is successful
+     if filename is NULL. */
+  if (!filename && !result && !errno)
+    result = stream;
+#endif
+
+  return result;
 }
index dc802f5..435c429 100644 (file)
@@ -1,5 +1,5 @@
 /* fstat() replacement.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9947405..d234055 100644 (file)
@@ -1,5 +1,5 @@
 /* getdtablesize() function for platforms that don't have it.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
 
 #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
 
-#include <stdio.h>
+# include <stdio.h>
 
-#include "msvc-inval.h"
+# include "msvc-inval.h"
 
-#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
 static int
 _setmaxstdio_nothrow (int newmax)
 {
@@ -44,10 +44,11 @@ _setmaxstdio_nothrow (int newmax)
 
   return result;
 }
-# define _setmaxstdio _setmaxstdio_nothrow
-#endif
+#  define _setmaxstdio _setmaxstdio_nothrow
+# endif
 
-/* Cache for the previous getdtablesize () result.  */
+/* Cache for the previous getdtablesize () result.  Safe to cache because
+   Windows also lacks setrlimit.  */
 static int dtablesize;
 
 int
@@ -83,4 +84,38 @@ getdtablesize (void)
   return dtablesize;
 }
 
+#else
+
+# include <limits.h>
+# include <sys/resource.h>
+
+# ifndef RLIM_SAVED_CUR
+#  define RLIM_SAVED_CUR RLIM_INFINITY
+# endif
+# ifndef RLIM_SAVED_MAX
+#  define RLIM_SAVED_MAX RLIM_INFINITY
+# endif
+
+# ifdef __CYGWIN__
+  /* Cygwin 1.7.25 auto-increases the RLIMIT_NOFILE soft limit until it
+     hits the compile-time constant hard limit of 3200.  We might as
+     well just report the hard limit.  */
+#  define rlim_cur rlim_max
+# endif
+
+int
+getdtablesize (void)
+{
+  struct rlimit lim;
+
+  if (getrlimit (RLIMIT_NOFILE, &lim) == 0
+      && 0 <= lim.rlim_cur && lim.rlim_cur <= INT_MAX
+      && lim.rlim_cur != RLIM_INFINITY
+      && lim.rlim_cur != RLIM_SAVED_CUR
+      && lim.rlim_cur != RLIM_SAVED_MAX)
+    return lim.rlim_cur;
+
+  return INT_MAX;
+}
+
 #endif
index ef0f4ce..8ccb901 100644 (file)
@@ -2,7 +2,7 @@
    NOTE: getopt is part of the C library, so if you don't know what
    "Keep this file name-space clean" means, talk to drepper@gnu.org
    before changing it!
-   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software
+   Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2016 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -487,7 +487,20 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
         const struct option *p;
         struct option_list *next;
       } *ambig_list = NULL;
+#ifdef _LIBC
+/* malloc() not used for _LIBC to simplify failure messages.  */
+# define free_option_list(l)
+#else
+# define free_option_list(l)                   \
+      while (l != NULL)                                \
+        {                                      \
+          struct option_list *pn = l->next;    \
+          free (l);                            \
+          l = pn;                              \
+        }
+#endif
       int exact = 0;
+      int ambig = 0;
       int indfound = -1;
       int option_index;
 
@@ -514,22 +527,37 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
                 pfound = p;
                 indfound = option_index;
               }
+            else if (ambig)
+              ; /* Taking simpler path to handling ambiguities.  */
             else if (long_only
                      || pfound->has_arg != p->has_arg
                      || pfound->flag != p->flag
                      || pfound->val != p->val)
               {
                 /* Second or later nonexact match found.  */
+#ifdef _LIBC
+                struct option_list *newp = alloca (sizeof (*newp));
+#else
                 struct option_list *newp = malloc (sizeof (*newp));
-                newp->p = p;
-                newp->next = ambig_list;
-                ambig_list = newp;
+                if (newp == NULL)
+                  {
+                    free_option_list (ambig_list);
+                    ambig_list = NULL;
+                    ambig = 1; /* Use simpler fallback message.  */
+                  }
+                else
+#endif
+                  {
+                    newp->p = p;
+                    newp->next = ambig_list;
+                    ambig_list = newp;
+                  }
               }
           }
 
-      if (ambig_list != NULL && !exact)
+      if ((ambig || ambig_list) && !exact)
         {
-          if (print_errors)
+          if (print_errors && ambig_list)
             {
               struct option_list first;
               first.p = pfound;
@@ -585,18 +613,20 @@ _getopt_internal_r (int argc, char **argv, const char *optstring,
               fputc ('\n', stderr);
 #endif
             }
+          else if (print_errors && ambig)
+            {
+              fprintf (stderr,
+                       _("%s: option '%s' is ambiguous\n"),
+                       argv[0], argv[d->optind]);
+            }
           d->__nextchar += strlen (d->__nextchar);
           d->optind++;
           d->optopt = 0;
+          free_option_list (ambig_list);
           return '?';
         }
 
-      while (ambig_list != NULL)
-        {
-          struct option_list *pn = ambig_list->next;
-          free (ambig_list);
-          ambig_list = pn;
-        }
+      free_option_list (ambig_list);
 
       if (pfound != NULL)
         {
index d9c7d81..0f72182 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2016 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index 55a6b4e..63db74f 100644 (file)
@@ -1,5 +1,5 @@
 /* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software
+   Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2016 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index a6e4b9e..be4c22e 100644 (file)
@@ -1,5 +1,5 @@
 /* Internal declarations for getopt.
-   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software
+   Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2016 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
index d021571..9a232cc 100644 (file)
@@ -1,5 +1,5 @@
 /* Convenience header for conditional use of GNU <libintl.h>.
-   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software
+   Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
@@ -225,15 +225,17 @@ dcpgettext_expr (const char *domain,
   if (msg_ctxt_id != NULL)
 #endif
     {
+      int found_translation;
       memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
       msg_ctxt_id[msgctxt_len - 1] = '\004';
       memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
       translation = dcgettext (domain, msg_ctxt_id, category);
+      found_translation = (translation != msg_ctxt_id);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
         free (msg_ctxt_id);
 #endif
-      if (translation != msg_ctxt_id)
+      if (found_translation)
         return translation;
     }
   return msgid;
@@ -271,15 +273,17 @@ dcnpgettext_expr (const char *domain,
   if (msg_ctxt_id != NULL)
 #endif
     {
+      int found_translation;
       memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
       msg_ctxt_id[msgctxt_len - 1] = '\004';
       memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
       translation = dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+      found_translation = !(translation == msg_ctxt_id || translation == msgid_plural);
 #if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
       if (msg_ctxt_id != buf)
         free (msg_ctxt_id);
 #endif
-      if (!(translation == msg_ctxt_id || translation == msgid_plural))
+      if (found_translation)
         return translation;
     }
   return (n == 1 ? msgid : msgid_plural);
index 0a642dd..ea58eb0 100644 (file)
@@ -1,6 +1,6 @@
 /* gettime -- get the system clock
 
-   Copyright (C) 2002, 2004-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index ad65c6d..224ca6a 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-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6fc8a96..c58afd2 100644 (file)
@@ -1,6 +1,6 @@
 ## DO NOT EDIT! GENERATED AUTOMATICALLY!
 ## Process this file with automake to produce Makefile.in.
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 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
@@ -21,7 +21,7 @@
 # the same distribution terms as the rest of that program.
 #
 # Generated by gnulib-tool.
-# Reproduce by: gnulib-tool --import --dir=. --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
+# Reproduce by: gnulib-tool --import --local-dir=gl --lib=libdiffutils --source-base=lib --m4-base=m4 --doc-base=doc --tests-base=gnulib-tests --aux-dir=build-aux --with-tests --avoid=localename --avoid=lock --makefile-name=gnulib.mk --no-conditional-dependencies --no-libtool --macro-prefix=gl announce-gen argmatch binary-io c-stack config-h diffseq dirname do-release-commit-and-tag dup2 error exclude exitfail extensions fcntl fdl file-type filenamecat fnmatch-gnu getopt gettext-h gettime git-version-gen gitlog-to-changelog gnu-make gnu-web-doc-update gnumakefile gnupload hard-locale inttostr inttypes isblank largefile lstat maintainer-makefile manywarnings mbrtowc mkstemp mktime progname propername rawmemchr readme-release regex sh-quote signal stat stat-macros stat-time stdint strcase strftime strptime strtoumax sys_wait system-quote unistd unlocked-io update-copyright vararrays verify version-etc version-etc-fsf wcwidth xalloc xfreopen xreadlink xstrtoumax xvasprintf
 
 
 MOSTLYCLEANFILES += core *.stackdump
@@ -33,6 +33,15 @@ libdiffutils_a_LIBADD = $(gl_LIBOBJS)
 libdiffutils_a_DEPENDENCIES = $(gl_LIBOBJS)
 EXTRA_libdiffutils_a_SOURCES =
 
+## begin gnulib module absolute-header
+
+# Use this preprocessor expression to decide whether #include_next works.
+# Do not rely on a 'configure'-time test for this, since the expression
+# might appear in an installed header, which is used by some other compiler.
+HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER)
+
+## end   gnulib module absolute-header
+
 ## begin gnulib module alloca
 
 
@@ -90,6 +99,21 @@ EXTRA_DIST += areadlink.h
 
 ## end   gnulib module areadlink
 
+## begin gnulib module argmatch
+
+libdiffutils_a_SOURCES += argmatch.c
+
+EXTRA_DIST += argmatch.h
+
+## end   gnulib module argmatch
+
+## begin gnulib module assure
+
+
+EXTRA_DIST += assure.h
+
+## end   gnulib module assure
+
 ## begin gnulib module binary-io
 
 libdiffutils_a_SOURCES += binary-io.h binary-io.c
@@ -156,7 +180,7 @@ EXTRA_libdiffutils_a_SOURCES += close.c
 ## begin gnulib module configmake
 
 # Listed in the same order as the GNU makefile conventions, and
-# provided by autoconf 2.59c+.
+# provided by autoconf 2.59c+ or 2.70.
 # The Automake-defined pkg* macros are appended, in the order
 # listed in the Automake 1.10a+ documentation.
 configmake.h: Makefile
@@ -172,6 +196,7 @@ configmake.h: Makefile
          echo '#define SYSCONFDIR "$(sysconfdir)"'; \
          echo '#define SHAREDSTATEDIR "$(sharedstatedir)"'; \
          echo '#define LOCALSTATEDIR "$(localstatedir)"'; \
+         echo '#define RUNSTATEDIR "$(runstatedir)"'; \
          echo '#define INCLUDEDIR "$(includedir)"'; \
          echo '#define OLDINCLUDEDIR "$(oldincludedir)"'; \
          echo '#define DOCDIR "$(docdir)"'; \
@@ -197,6 +222,33 @@ CLEANFILES += configmake.h configmake.h-t
 
 ## end   gnulib module configmake
 
+## begin gnulib module ctype
+
+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' \
+             -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''@/$(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 $@
+MOSTLYCLEANFILES += ctype.h ctype.h-t
+
+EXTRA_DIST += ctype.in.h
+
+## end   gnulib module ctype
+
 ## begin gnulib module diffseq
 
 libdiffutils_a_SOURCES += diffseq.h
@@ -363,6 +415,13 @@ EXTRA_DIST += file-type.h
 
 ## end   gnulib module file-type
 
+## begin gnulib module filename
+
+
+EXTRA_DIST += filename.h
+
+## end   gnulib module filename
+
 ## begin gnulib module filenamecat
 
 libdiffutils_a_SOURCES += filenamecat.c
@@ -578,6 +637,9 @@ EXTRA_DIST += $(top_srcdir)/build-aux/gnupload
 ## begin gnulib module gperf
 
 GPERF = gperf
+V_GPERF = $(V_GPERF_@AM_V@)
+V_GPERF_ = $(V_GPERF_@AM_DEFAULT_V@)
+V_GPERF_0 = @echo "  GPERF   " $@;
 
 ## end   gnulib module gperf
 
@@ -643,19 +705,19 @@ EXTRA_DIST += iconv.in.h
 ## begin gnulib module iconv_open
 
 iconv_open-aix.h: iconv_open-aix.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t
+       $(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
 iconv_open-hpux.h: iconv_open-hpux.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t && \
        mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h
 iconv_open-irix.h: iconv_open-irix.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t && \
        mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h
 iconv_open-osf.h: iconv_open-osf.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t && \
        mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h
 iconv_open-solaris.h: iconv_open-solaris.gperf
-       $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t
+       $(V_GPERF)$(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t && \
        mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h
 BUILT_SOURCES        += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h
 MOSTLYCLEANFILES     += 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
@@ -684,12 +746,7 @@ EXTRA_DIST += intprops.h
 
 ## begin gnulib module inttostr
 
-libdiffutils_a_SOURCES += \
-  imaxtostr.c \
-  inttostr.c \
-  offtostr.c \
-  uinttostr.c \
-  umaxtostr.c
+libdiffutils_a_SOURCES +=    imaxtostr.c    inttostr.c    offtostr.c    uinttostr.c    umaxtostr.c
 
 EXTRA_DIST += anytostr.c inttostr.h
 
@@ -725,6 +782,7 @@ 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/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \
+             -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \
              -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \
              -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \
              -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \
@@ -741,6 +799,15 @@ EXTRA_DIST += inttypes.in.h
 
 ## end   gnulib module inttypes-incomplete
 
+## begin gnulib module isblank
+
+
+EXTRA_DIST += isblank.c
+
+EXTRA_libdiffutils_a_SOURCES += isblank.c
+
+## end   gnulib module isblank
+
 ## begin gnulib module iswblank
 
 
@@ -916,15 +983,6 @@ EXTRA_DIST += $(top_srcdir)/maint.mk
 
 ## end   gnulib module maintainer-makefile
 
-## begin gnulib module malloc-gnu
-
-
-EXTRA_DIST += malloc.c
-
-EXTRA_libdiffutils_a_SOURCES += malloc.c
-
-## end   gnulib module malloc-gnu
-
 ## begin gnulib module malloc-posix
 
 
@@ -1045,6 +1103,15 @@ EXTRA_libdiffutils_a_SOURCES += mktime.c
 
 ## end   gnulib module mktime
 
+## begin gnulib module mktime-internal
+
+
+EXTRA_DIST += mktime-internal.h mktime.c
+
+EXTRA_libdiffutils_a_SOURCES += mktime.c
+
+## end   gnulib module mktime-internal
+
 ## begin gnulib module msvc-inval
 
 
@@ -1124,6 +1191,15 @@ EXTRA_libdiffutils_a_SOURCES += raise.c
 
 ## end   gnulib module raise
 
+## begin gnulib module rawmemchr
+
+
+EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
+
+EXTRA_libdiffutils_a_SOURCES += rawmemchr.c
+
+## end   gnulib module rawmemchr
+
 ## begin gnulib module readlink
 
 
@@ -1158,6 +1234,15 @@ EXTRA_libdiffutils_a_SOURCES += secure_getenv.c
 
 ## end   gnulib module secure_getenv
 
+## begin gnulib module setenv
+
+
+EXTRA_DIST += setenv.c
+
+EXTRA_libdiffutils_a_SOURCES += setenv.c
+
+## end   gnulib module setenv
+
 ## begin gnulib module sh-quote
 
 libdiffutils_a_SOURCES += sh-quote.h sh-quote.c
@@ -1427,6 +1512,7 @@ stddef.h: stddef.in.h $(top_builddir)/config.status
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+             -e 's|@''HAVE_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; \
@@ -1653,6 +1739,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
              -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
              -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+             -e 's/@''GNULIB_QSORT_R''@/$(GNULIB_QSORT_R)/g' \
              -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \
              -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \
              -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \
@@ -1704,6 +1791,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \
              -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_R''@|$(REPLACE_RANDOM_R)|g' \
              -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \
              -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \
@@ -2132,15 +2220,20 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \
+             -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
              -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \
              -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \
              -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \
              -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \
              -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
+             -e 's/@''GNULIB_TIME_RZ''@/$(GNULIB_TIME_RZ)/g' \
              -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
              -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
              -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
              -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \
+             -e 's|@''HAVE_TIMEZONE_T''@|$(HAVE_TIMEZONE_T)|g' \
+             -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \
+             -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \
              -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \
              -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \
              -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \
@@ -2148,6 +2241,7 @@ time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(
              -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' \
              -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \
+             -e 's|@''UNISTD_H_DEFINES_STRUCT_TIMESPEC''@|$(UNISTD_H_DEFINES_STRUCT_TIMESPEC)|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)' \
@@ -2169,6 +2263,24 @@ EXTRA_libdiffutils_a_SOURCES += time_r.c
 
 ## end   gnulib module time_r
 
+## begin gnulib module time_rz
+
+
+EXTRA_DIST += time-internal.h time_rz.c
+
+EXTRA_libdiffutils_a_SOURCES += time_rz.c
+
+## end   gnulib module time_rz
+
+## begin gnulib module timegm
+
+
+EXTRA_DIST += mktime-internal.h timegm.c
+
+EXTRA_libdiffutils_a_SOURCES += timegm.c
+
+## end   gnulib module timegm
+
 ## begin gnulib module timespec
 
 libdiffutils_a_SOURCES += timespec.c
@@ -2303,6 +2415,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \
              -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
              -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+             -e 's|@''REPLACE_GETDTABLESIZE''@|$(REPLACE_GETDTABLESIZE)|g' \
              -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
              -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
              -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
@@ -2315,9 +2428,11 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H
              -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_SLEEP''@|$(REPLACE_SLEEP)|g' \
              -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \
+             -e 's|@''REPLACE_SYMLINKAT''@|$(REPLACE_SYMLINKAT)|g' \
              -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \
              -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \
              -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \
@@ -2417,6 +2532,15 @@ EXTRA_DIST += unlocked-io.h
 
 ## end   gnulib module unlocked-io
 
+## begin gnulib module unsetenv
+
+
+EXTRA_DIST += unsetenv.c
+
+EXTRA_libdiffutils_a_SOURCES += unsetenv.c
+
+## end   gnulib module unsetenv
+
 ## begin gnulib module update-copyright
 
 
index d55658d..c7d9da5 100644 (file)
@@ -1,6 +1,6 @@
 /* hard-locale.c -- Determine whether a locale is hard.
 
-   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2013 Free Software
+   Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 1d43607..7644afa 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine whether a locale is hard.
 
-   Copyright (C) 1999, 2003-2004, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003-2004, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 685928e..f9dede0 100644 (file)
@@ -1,6 +1,6 @@
 /* hash - hashing table processing.
 
-   Copyright (C) 1998-2004, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-2004, 2006-2007, 2009-2016 Free Software Foundation, Inc.
 
    Written by Jim Meyering, 1992.
 
@@ -1116,14 +1116,6 @@ hash_insert_if_absent (Hash_table *table, void const *entry,
   return 1;
 }
 
-/* hash_insert0 is the deprecated name for hash_insert_if_absent.
-   .  */
-int
-hash_insert0 (Hash_table *table, void const *entry, void const **matched_ent)
-{
-  return hash_insert_if_absent (table, entry, matched_ent);
-}
-
 /* If ENTRY matches an entry already in the hash table, return the pointer
    to the entry from the table.  Otherwise, insert ENTRY and return ENTRY.
    Return NULL if the storage required for insertion cannot be allocated.
index bcd0d1d..b61bee6 100644 (file)
@@ -1,5 +1,5 @@
 /* hash - hashing table processing.
-   Copyright (C) 1998-1999, 2001, 2003, 2009-2013 Free Software Foundation,
+   Copyright (C) 1998-1999, 2001, 2003, 2009-2016 Free Software Foundation,
    Inc.
    Written by Jim Meyering <meyering@ascend.com>, 1998.
 
@@ -96,10 +96,6 @@ void hash_free (Hash_table *);
 bool hash_rehash (Hash_table *, size_t) _GL_ATTRIBUTE_WUR;
 void *hash_insert (Hash_table *, const void *) _GL_ATTRIBUTE_WUR;
 
-/* Deprecate this interface.  It has been renamed to hash_insert_if_absent.  */
-int hash_insert0 (Hash_table *table, /* FIXME: remove in 2013 */
-                  const void *entry,
-                  const void **matched_ent) _GL_ATTRIBUTE_DEPRECATED;
 int hash_insert_if_absent (Hash_table *table, const void *entry,
                            const void **matched_ent);
 void *hash_delete (Hash_table *, const void *);
index 6fb2f24..9ce9c01 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2001, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a88173d..cb1da14 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <iconv.h>.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6f019a0..d1cd793 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9a38e7e..d5c5a52 100644 (file)
@@ -1,5 +1,5 @@
 /* Character set conversion.
-   Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 63ecde8..6713d96 100644 (file)
@@ -1,6 +1,6 @@
-/* ignore a function return without a compiler warning
+/* ignore a function return without a compiler warning.  -*- coding: utf-8 -*-
 
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    declared with attribute warn_unused_result".  */
 
 #ifndef _GL_IGNORE_VALUE_H
-# define _GL_IGNORE_VALUE_H
-
-/* The __attribute__((__warn_unused_result__)) feature
-   is available in gcc versions 3.4 and newer,
-   while the typeof feature has been available since 2.7 at least.  */
-# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
-#  define ignore_value(x) ((void) (x))
-# else
-#  define ignore_value(x) (({ __typeof__ (x) __x = (x); (void) __x; }))
-# endif
+#define _GL_IGNORE_VALUE_H
+
+/* Normally casting an expression to void discards its value, but GCC
+   versions 3.4 and newer have __attribute__ ((__warn_unused_result__))
+   which may cause unwanted diagnostics in that case.  Use __typeof__
+   and __extension__ to work around the problem, if the workaround is
+   known to be needed.  */
+#if 3 < __GNUC__ + (4 <= __GNUC_MINOR__)
+# define ignore_value(x) \
+    (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; }))
+#else
+# define ignore_value(x) ((void) (x))
+#endif
 
 #endif
index b473052..e1fce5c 100644 (file)
@@ -1,10 +1,10 @@
 /* intprops.h -- properties of integer types
 
-   Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2016 Free Software Foundation, Inc.
 
-   This program is free software: you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
+   This program is free software: you can redistribute it and/or modify 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,
@@ -21,9 +21,9 @@
 #define _GL_INTPROPS_H
 
 #include <limits.h>
+#include <verify.h>
 
-/* Return an integer value, converted to the same type as the integer
-   expression E after integer type promotion.  V is the unconverted value.  */
+/* Return a value with the common real type of E and V and the value of V.  */
 #define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
 
 /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
    an integer.  */
 #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
 
-/* True if negative values of the signed integer type T use two's
-   complement, ones' complement, or signed magnitude representation,
-   respectively.  Much GNU code assumes two's complement, but some
-   people like to be portable to all possible C hosts.  */
-#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
-#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
-
-/* True if the signed integer expression E uses two's complement.  */
-#define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1)
-
-/* True if the arithmetic type T is signed.  */
+/* True if the real type T is signed.  */
 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
-/* Return 1 if the integer expression E, after integer promotion, has
-   a signed type.  */
-#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+/* Return 1 if the real expression E, after promotion, has a
+   signed or floating type.  */
+#define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
 
 
-/* Minimum and maximum values for integer types and expressions.  These
-   macros have undefined behavior if T is signed and has padding bits.
-   If this is a problem for you, please let us know how to fix it for
-   your host.  */
+/* Minimum and maximum values for integer types and expressions.  */
 
 /* The maximum and minimum values for the integer type T.  */
-#define TYPE_MINIMUM(t)                                                 \
-  ((t) (! TYPE_SIGNED (t)                                               \
-        ? (t) 0                                                         \
-        : TYPE_SIGNED_MAGNITUDE (t)                                     \
-        ? ~ (t) 0                                                       \
-        : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
 #define TYPE_MAXIMUM(t)                                                 \
   ((t) (! TYPE_SIGNED (t)                                               \
         ? (t) -1                                                        \
 /* The maximum and minimum values for the type of the expression E,
    after integer promotion.  E should not have side effects.  */
 #define _GL_INT_MINIMUM(e)                                              \
-  (_GL_INT_SIGNED (e)                                                   \
-   ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e)         \
+  (EXPR_SIGNED (e)                                                      \
+   ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
    : _GL_INT_CONVERT (e, 0))
 #define _GL_INT_MAXIMUM(e)                                              \
-  (_GL_INT_SIGNED (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) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
 
+/* 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.
+   As a sanity check, test the assumption for some signed types that
+   <limits.h> bounds.  */
+verify (TYPE_MINIMUM (signed char) == SCHAR_MIN);
+verify (TYPE_MAXIMUM (signed char) == SCHAR_MAX);
+verify (TYPE_MINIMUM (short int) == SHRT_MIN);
+verify (TYPE_MAXIMUM (short int) == SHRT_MAX);
+verify (TYPE_MINIMUM (int) == INT_MIN);
+verify (TYPE_MAXIMUM (int) == INT_MAX);
+verify (TYPE_MINIMUM (long int) == LONG_MIN);
+verify (TYPE_MAXIMUM (long int) == LONG_MAX);
+#ifdef LLONG_MAX
+verify (TYPE_MINIMUM (long long int) == LLONG_MIN);
+verify (TYPE_MAXIMUM (long long int) == LLONG_MAX);
+#endif
 
-/* Return 1 if the __typeof__ keyword works.  This could be done by
+/* 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__ || 0x5110 <= __SUNPRO_C
+#if (2 <= __GNUC__ || defined __IBM__TYPEOF__ \
+     || (0x5110 <= __SUNPRO_C && !__STDC__))
 # define _GL_HAVE___TYPEOF__ 1
 #else
 # define _GL_HAVE___TYPEOF__ 0
    ? (a) < (min) >> (b)                                 \
    : (max) >> (b) < (a))
 
+/* True if __builtin_add_overflow (A, B, P) works when P is null.  */
+#define _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL (7 <= __GNUC__)
 
 /* The _GL*_OVERFLOW macros have the same restrictions as the
    *_RANGE_OVERFLOW macros, except that they do not assume that operands
    (e.g., A and B) have the same type as MIN and MAX.  Instead, they assume
    that the result (e.g., A + B) has that type.  */
-#define _GL_ADD_OVERFLOW(a, b, min, max)                                \
-  ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max)                  \
-   : (a) < 0 ? (b) <= (a) + (b)                                         \
-   : (b) < 0 ? (a) <= (a) + (b)                                         \
-   : (a) + (b) < (b))
-#define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                           \
-  ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)             \
-   : (a) < 0 ? 1                                                        \
-   : (b) < 0 ? (a) - (b) <= (a)                                         \
-   : (a) < (b))
-#define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                           \
-  (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a))))       \
-   || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
+# define _GL_ADD_OVERFLOW(a, b, min, max)
+   __builtin_add_overflow (a, b, (__typeof__ ((a) + (b)) *) 0)
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)
+   __builtin_sub_overflow (a, b, (__typeof__ ((a) - (b)) *) 0)
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)
+   __builtin_mul_overflow (a, b, (__typeof__ ((a) * (b)) *) 0)
+#else
+# define _GL_ADD_OVERFLOW(a, b, min, max)                                \
+   ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max)                  \
+    : (a) < 0 ? (b) <= (a) + (b)                                         \
+    : (b) < 0 ? (a) <= (a) + (b)                                         \
+    : (a) + (b) < (b))
+# define _GL_SUBTRACT_OVERFLOW(a, b, min, max)                           \
+   ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)             \
+    : (a) < 0 ? 1                                                        \
+    : (b) < 0 ? (a) - (b) <= (a)                                         \
+    : (a) < (b))
+# define _GL_MULTIPLY_OVERFLOW(a, b, min, max)                           \
+   (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a))))       \
+    || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#endif
 #define _GL_DIVIDE_OVERFLOW(a, b, min, max)                             \
   ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max)  \
    : (a) < 0 ? (b) <= (a) + (b) - 1                                     \
     : (a) % - (b))                                                      \
    == 0)
 
-
-/* Integer overflow checks.
+/* Check for integer overflow, and report low order bits of answer.
 
    The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
    might not yield numerically correct answers due to arithmetic overflow.
-   They work correctly on all known practical hosts, and do not rely
+   The INT_<op>_WRAPV macros also store the low-order bits of the answer.
+   These macros work correctly on all known practical hosts, and do not rely
    on undefined behavior due to signed arithmetic overflow.
 
-   Example usage:
+   Example usage, assuming A and B are long int:
 
-     long int i = ...;
-     long int j = ...;
-     if (INT_MULTIPLY_OVERFLOW (i, j))
-       printf ("multiply would overflow");
+     if (INT_MULTIPLY_OVERFLOW (a, b))
+       printf ("result would overflow\n");
      else
-       printf ("product is %ld", i * j);
+       printf ("result is %ld (no overflow)\n", a * b);
+
+   Example usage with WRAPV flavor:
+
+     long int result;
+     bool overflow = INT_MULTIPLY_WRAPV (a, b, &result);
+     printf ("result is %ld (%s)\n", result,
+             overflow ? "after overflow" : "no overflow");
+
+   Restrictions on these macros:
 
    These macros do not check for all possible numerical problems or
    undefined or unspecified behavior: they do not check for division
    These macros may evaluate their arguments zero or multiple times, so the
    arguments should not have side effects.
 
+   The WRAPV macros are not constant expressions.  They support only
+   +, binary -, and *.  The result type must be signed.
+
    These macros are tuned for their last argument being a constant.
 
    Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
 #define INT_SUBTRACT_OVERFLOW(a, b) \
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
-#define INT_NEGATE_OVERFLOW(a) \
-  INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#if _GL_HAS_BUILTIN_OVERFLOW_WITH_NULL
+# 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_MULTIPLY_OVERFLOW(a, b) \
   _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
 #define INT_DIVIDE_OVERFLOW(a, b) \
                       _GL_INT_MINIMUM (0 * (b) + (a)),          \
                       _GL_INT_MAXIMUM (0 * (b) + (a)))
 
+/* 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.  */
+#define INT_ADD_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, +, __builtin_add_overflow, INT_ADD_OVERFLOW)
+#define INT_SUBTRACT_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, -, __builtin_sub_overflow, INT_SUBTRACT_OVERFLOW)
+#define INT_MULTIPLY_WRAPV(a, b, r) \
+  _GL_INT_OP_WRAPV (a, b, r, *, __builtin_mul_overflow, INT_MULTIPLY_OVERFLOW)
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#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 older compilers that
+   lack __builtin_add_overflow.  */
+#if __GNUC__
+# 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.  BUILTIN is the builtin operation, and OVERFLOW the
+   overflow predicate.  Return 1 if the result overflows.  See above
+   for restrictions.  */
+#if 5 <= __GNUC__ || __has_builtin (__builtin_add_overflow)
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) builtin (a, b, r)
+#elif 201112 <= __STDC_VERSION__ && !_GL__GENERIC_BOGUS
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
+   (_Generic \
+    (*(r), \
+     signed char: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
+                        signed char, SCHAR_MIN, SCHAR_MAX), \
+     short int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
+                        short int, SHRT_MIN, SHRT_MAX), \
+     int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                        int, INT_MIN, INT_MAX), \
+     long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                        long int, LONG_MIN, LONG_MAX), \
+     long long int: \
+       _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long long int, \
+                        long long int, LLONG_MIN, LLONG_MAX)))
+#else
+# define _GL_INT_OP_WRAPV(a, b, r, op, builtin, overflow) \
+   (sizeof *(r) == sizeof (signed char) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned char, \
+                       signed char, SCHAR_MIN, SCHAR_MAX) \
+    : sizeof *(r) == sizeof (short int) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned short int, \
+                       short int, SHRT_MIN, SHRT_MAX) \
+    : sizeof *(r) == sizeof (int) \
+    ? _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned int, \
+                       int, INT_MIN, INT_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_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 long int, \
+                        long long int, LLONG_MIN, LLONG_MAX))
+# else
+#  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
+    _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned long int, \
+                     long int, LONG_MIN, LONG_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 extremal values 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) \
+  (sizeof ((a) op (b)) < sizeof (t) \
+   ? _GL_INT_OP_CALC1 ((t) (a), (t) (b), r, op, overflow, ut, t, tmin, tmax) \
+   : _GL_INT_OP_CALC1 (a, b, r, op, overflow, ut, t, tmin, tmax))
+#define _GL_INT_OP_CALC1(a, b, r, op, overflow, ut, t, tmin, tmax) \
+  ((overflow (a, b) \
+    || (EXPR_SIGNED ((a) op (b)) && ((a) op (b)) < (tmin)) \
+    || (tmax) < ((a) op (b))) \
+   ? (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 1) \
+   : (*(r) = _GL_INT_OP_WRAPV_VIA_UNSIGNED (a, b, op, ut, t, tmin, tmax), 0))
+
+/* Return A <op> B, where the operation is given by OP.  Use the
+   unsigned type UT for calculation to avoid overflow problems.
+   Convert the result to type T without overflow by subtracting TMIN
+   from large values before converting, and adding it afterwards.
+   Compilers can optimize all the operations except OP.  */
+#define _GL_INT_OP_WRAPV_VIA_UNSIGNED(a, b, op, ut, t, tmin, tmax) \
+  (((ut) (a) op (ut) (b)) <= (tmax) \
+   ? (t) ((ut) (a) op (ut) (b)) \
+   : ((t) (((ut) (a) op (ut) (b)) - (tmin)) + (tmin)))
+
 #endif /* _GL_INTPROPS_H */
index 4605145..781ee6e 100644 (file)
@@ -1,6 +1,6 @@
 /* inttostr.h -- convert integers to printable strings
 
-   Copyright (C) 2001-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1893f55..ed09db6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2016 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Derek Price.
    This file is part of gnulib.
 
 #endif
 /* Get CHAR_BIT.  */
 #include <limits.h>
+/* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <stdio.h>
+#endif
 
 #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
 # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
@@ -1105,12 +1109,22 @@ _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - "
 #endif
 
 #if @GNULIB_STRTOUMAX@
-# if !@HAVE_DECL_STRTOUMAX@
-#  undef strtoumax
+# if @REPLACE_STRTOUMAX@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef strtoumax
+#   define strtoumax rpl_strtoumax
+#  endif
+_GL_FUNCDECL_RPL (strtoumax, uintmax_t,
+                  (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoumax, uintmax_t, (const char *, char **, int));
+# else
+#  if !@HAVE_DECL_STRTOUMAX@
+#   undef strtoumax
 _GL_FUNCDECL_SYS (strtoumax, uintmax_t,
                   (const char *, char **, int) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
+# endif
 _GL_CXXALIASWARN (strtoumax);
 #elif defined GNULIB_POSIXCHECK
 # undef strtoumax
diff --git a/lib/isblank.c b/lib/isblank.c
new file mode 100644 (file)
index 0000000..6cc7379
--- /dev/null
@@ -0,0 +1,33 @@
+/* Test whether a character is a blank.
+
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <ctype.h>
+
+int
+isblank (int c)
+{
+  /* On all known platforms, in all predefined locales, isblank(c) is likely
+     equivalent with  (c == ' ' || c == '\t').  Look at the glibc definition
+     (in glibc/localedata/locales/i18n): The "blank" characters are '\t', ' ',
+     U+1680, U+180E, U+2000..U+2006, U+2008..U+200A, U+205F, U+3000, and none
+     except the first two is present in a common 8-bit encoding.  Therefore
+     the substitute for other platforms is not more complicated than this.  */
+  return (c == ' ' || c == '\t');
+}
index 613ef63..8d47ee5 100644 (file)
@@ -1,5 +1,5 @@
 /* Test wide character for being blank.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 9aabc7e..5533392 100644 (file)
@@ -1,5 +1,5 @@
 /* Replacement for 'int' to 'long double' conversion routine.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index 5388ce6..e11617c 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <langinfo.h>.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -49,7 +49,10 @@ typedef int nl_item;
 # define CODESET     10000
 /* nl_langinfo items of the LC_NUMERIC category */
 # define RADIXCHAR   10001
+# define DECIMAL_POINT RADIXCHAR
 # define THOUSEP     10002
+# define THOUSANDS_SEP THOUSEP
+# define GROUPING    10114
 /* nl_langinfo items of the LC_TIME category */
 # define D_T_FMT     10003
 # define D_FMT       10004
@@ -102,6 +105,21 @@ typedef int nl_item;
 # define ALT_DIGITS  10051
 /* nl_langinfo items of the LC_MONETARY category */
 # define CRNCYSTR    10052
+# define CURRENCY_SYMBOL   CRNCYSTR
+# define INT_CURR_SYMBOL   10100
+# define MON_DECIMAL_POINT 10101
+# define MON_THOUSANDS_SEP 10102
+# define MON_GROUPING      10103
+# define POSITIVE_SIGN     10104
+# define NEGATIVE_SIGN     10105
+# define FRAC_DIGITS       10106
+# define INT_FRAC_DIGITS   10107
+# define P_CS_PRECEDES     10108
+# define N_CS_PRECEDES     10109
+# define P_SEP_BY_SPACE    10110
+# define N_SEP_BY_SPACE    10111
+# define P_SIGN_POSN       10112
+# define N_SIGN_POSN       10113
 /* nl_langinfo items of the LC_MESSAGES category */
 # define YESEXPR     10053
 # define NOEXPR      10054
index 953cc1e..b2a0369 100644 (file)
@@ -1,6 +1,6 @@
 /* Determine a canonical name for the current locale's character encoding.
 
-   Copyright (C) 2000-2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2000-2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -34,6 +34,7 @@
 
 #if defined _WIN32 || defined __WIN32__
 # define WINDOWS_NATIVE
+# include <locale.h>
 #endif
 
 #if defined __EMX__
 # include <os2.h>
 #endif
 
+/* For MB_CUR_MAX_L */
+#if defined DARWIN7
+# include <xlocale.h>
+#endif
+
 #if ENABLE_RELOCATABLE
 # include "relocatable.h"
 #else
@@ -122,7 +128,7 @@ get_charset_aliases (void)
   cp = charset_aliases;
   if (cp == NULL)
     {
-#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__)
+#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2)
       const char *dir;
       const char *base = "charset.alias";
       char *file_name;
@@ -336,6 +342,36 @@ get_charset_aliases (void)
            "CP54936" "\0" "GB18030" "\0"
            "CP65001" "\0" "UTF-8" "\0";
 # endif
+# if defined OS2
+      /* To avoid the troubles of installing a separate file in the same
+         directory as the DLL and of retrieving the DLL's directory at
+         runtime, simply inline the aliases here.  */
+
+      /* The list of encodings is taken from "List of OS/2 Codepages"
+         by Alex Taylor:
+         <http://altsan.org/os2/toolkits/uls/index.html#codepages>.
+         See also "IBM Globalization - Code page identifiers":
+         <http://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>.  */
+      cp = "CP813" "\0" "ISO-8859-7" "\0"
+           "CP878" "\0" "KOI8-R" "\0"
+           "CP819" "\0" "ISO-8859-1" "\0"
+           "CP912" "\0" "ISO-8859-2" "\0"
+           "CP913" "\0" "ISO-8859-3" "\0"
+           "CP914" "\0" "ISO-8859-4" "\0"
+           "CP915" "\0" "ISO-8859-5" "\0"
+           "CP916" "\0" "ISO-8859-8" "\0"
+           "CP920" "\0" "ISO-8859-9" "\0"
+           "CP921" "\0" "ISO-8859-13" "\0"
+           "CP923" "\0" "ISO-8859-15" "\0"
+           "CP954" "\0" "EUC-JP" "\0"
+           "CP964" "\0" "EUC-TW" "\0"
+           "CP970" "\0" "EUC-KR" "\0"
+           "CP1089" "\0" "ISO-8859-6" "\0"
+           "CP1208" "\0" "UTF-8" "\0"
+           "CP1381" "\0" "GB2312" "\0"
+           "CP1386" "\0" "GBK" "\0"
+           "CP3372" "\0" "EUC-JP" "\0";
+# endif
 #endif
 
       charset_aliases = cp;
@@ -456,14 +492,34 @@ locale_charset (void)
 
   static char buf[2 + 10 + 1];
 
-  /* The Windows API has a function returning the locale's codepage as a
-     number: GetACP().
-     When the output goes to a console window, it needs to be provided in
-     GetOEMCP() encoding if the console is using a raster font, or in
-     GetConsoleOutputCP() encoding if it is using a TrueType font.
-     But in GUI programs and for output sent to files and pipes, GetACP()
-     encoding is the best bet.  */
-  sprintf (buf, "CP%u", GetACP ());
+  /* The Windows API has a function returning the locale's codepage as
+     a number, but the value doesn't change according to what the
+     'setlocale' call specified.  So we use it as a last resort, in
+     case the string returned by 'setlocale' doesn't specify the
+     codepage.  */
+  char *current_locale = setlocale (LC_ALL, NULL);
+  char *pdot;
+
+  /* If they set different locales for different categories,
+     'setlocale' will return a semi-colon separated list of locale
+     values.  To make sure we use the correct one, we choose LC_CTYPE.  */
+  if (strchr (current_locale, ';'))
+    current_locale = setlocale (LC_CTYPE, NULL);
+
+  pdot = strrchr (current_locale, '.');
+  if (pdot)
+    sprintf (buf, "CP%s", pdot + 1);
+  else
+    {
+      /* The Windows API has a function returning the locale's codepage as a
+        number: GetACP().
+        When the output goes to a console window, it needs to be provided in
+        GetOEMCP() encoding if the console is using a raster font, or in
+        GetConsoleOutputCP() encoding if it is using a TrueType font.
+        But in GUI programs and for output sent to files and pipes, GetACP()
+        encoding is the best bet.  */
+      sprintf (buf, "CP%u", GetACP ());
+    }
   codeset = buf;
 
 #elif defined OS2
@@ -473,6 +529,8 @@ locale_charset (void)
   ULONG cp[3];
   ULONG cplen;
 
+  codeset = NULL;
+
   /* Allow user to override the codeset, as set in the operating system,
      with standard language environment variables.  */
   locale = getenv ("LC_ALL");
@@ -504,10 +562,12 @@ locale_charset (void)
             }
         }
 
-      /* Resolve through the charset.alias file.  */
-      codeset = locale;
+      /* For the POSIX locale, don't use the system's codepage.  */
+      if (strcmp (locale, "C") == 0 || strcmp (locale, "POSIX") == 0)
+        codeset = "";
     }
-  else
+
+  if (codeset == NULL)
     {
       /* OS/2 has a function returning the locale's codepage as a number.  */
       if (DosQueryCp (sizeof (cp), cp, &cplen))
@@ -545,7 +605,7 @@ locale_charset (void)
 #ifdef DARWIN7
   /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8"
      (the default codeset) does not work when MB_CUR_MAX is 1.  */
-  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX <= 1)
+  if (strcmp (codeset, "UTF-8") == 0 && MB_CUR_MAX_L (uselocale (NULL)) <= 1)
     codeset = "ASCII";
 #endif
 
index c209829..915182e 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine a canonical name for the current locale's character encoding.
-   Copyright (C) 2000-2003, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2000-2003, 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNU CHARSET Library.
 
    This program is free software; you can redistribute it and/or modify
index 264161a..4083507 100644 (file)
@@ -1,5 +1,5 @@
 /* A POSIX <locale.h>.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7c7c77c..8a1d6d7 100644 (file)
@@ -1,5 +1,5 @@
 /* Query locale dependent information for formatting numbers.
-   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   Copyright (C) 2012-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1a613a8..03b0634 100644 (file)
@@ -1,6 +1,6 @@
 /* Work around a bug of lstat on some systems
 
-   Copyright (C) 1997-2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 1997-2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 908735d..e9b01d2 100644 (file)
@@ -1,6 +1,6 @@
 /* malloc() function that is glibc compatible.
 
-   Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1997-1998, 2006-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3cd2f6d..a613277 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
 #define MAGIC_SIZE sizeof (int)
 /* This is how the header info would look like without any alignment
    considerations.  */
-struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+struct preliminary_header { void *next; int magic; };
 /* But the header's size must be a multiple of sa_alignment_max.  */
 #define HEADER_SIZE \
   (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
-struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
-verify (HEADER_SIZE == sizeof (struct header));
+union header {
+  void *next;
+  struct {
+    char room[HEADER_SIZE - MAGIC_SIZE];
+    int word;
+  } magic;
+};
+verify (HEADER_SIZE == sizeof (union header));
 /* We make the hash table quite big, so that during lookups the probability
    of empty hash buckets is quite high.  There is no need to make the hash
    table resizable, because when the hash table gets filled so much that the
@@ -74,20 +80,21 @@ mmalloca (size_t n)
 
   if (nplus >= n)
     {
-      char *p = (char *) malloc (nplus);
+      void *p = malloc (nplus);
 
       if (p != NULL)
         {
           size_t slot;
+          union header *h = p;
 
-          p += HEADER_SIZE;
+          p = h + 1;
 
           /* Put a magic number into the indicator word.  */
-          ((int *) p)[-1] = MAGIC_NUMBER;
+          h->magic.word = MAGIC_NUMBER;
 
           /* Enter p into the hash table.  */
           slot = (uintptr_t) p % HASH_TABLE_SIZE;
-          ((struct header *) (p - HEADER_SIZE))->next = mmalloca_results[slot];
+          h->next = mmalloca_results[slot];
           mmalloca_results[slot] = p;
 
           return p;
@@ -123,15 +130,17 @@ freea (void *p)
           void **chain = &mmalloca_results[slot];
           for (; *chain != NULL;)
             {
+              union header *h = p;
               if (*chain == p)
                 {
                   /* Found it.  Remove it from the hash table and free it.  */
-                  char *p_begin = (char *) p - HEADER_SIZE;
-                  *chain = ((struct header *) p_begin)->next;
+                  union header *p_begin = h - 1;
+                  *chain = p_begin->next;
                   free (p_begin);
                   return;
                 }
-              chain = &((struct header *) ((char *) *chain - HEADER_SIZE))->next;
+              h = *chain;
+              chain = &h[-1].next;
             }
         }
       /* At this point, we know it was not a mmalloca() result.  */
index 906d47a..fa27a9e 100644 (file)
@@ -1,5 +1,5 @@
 /* Safe automatic memory allocation.
-   Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2003.
 
    This program is free software; you can redistribute it and/or modify
@@ -92,7 +92,7 @@ extern void * nmalloca (size_t n, size_t s);
 /* ------------------- Auxiliary, non-public definitions ------------------- */
 
 /* Determine the alignment of a type at compile time.  */
-#if defined __GNUC__
+#if defined __GNUC__ || defined __IBM__ALIGNOF__
 # define sa_alignof __alignof__
 #elif defined __cplusplus
   template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
index 7482c31..27796c3 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001, 2006, 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 327c957..2017d86 100644 (file)
@@ -1,5 +1,5 @@
 /* Multibyte character data type.
-   Copyright (C) 2001, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This 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 <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 24504c3..d72b0a7 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -97,6 +97,9 @@
 
 #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 5ee44ae..cdd874b 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 1999-2002, 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2005-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
 /* Specification.  */
 #include <wchar.h>
 
+#if C_LOCALE_MAYBE_EILSEQ
+# include "hard-locale.h"
+# include <locale.h>
+#endif
+
 #if GNULIB_defined_mbstate_t
 /* Implement mbrtowc() on top of mbtowc().  */
 
@@ -328,7 +333,10 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 size_t
 rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 {
-# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG
+  size_t ret;
+  wchar_t wc;
+
+# if MBRTOWC_NULL_ARG2_BUG || MBRTOWC_RETVAL_BUG || MBRTOWC_EMPTY_INPUT_BUG
   if (s == NULL)
     {
       pwc = NULL;
@@ -337,6 +345,14 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
     }
 # endif
 
+# if MBRTOWC_EMPTY_INPUT_BUG
+  if (n == 0)
+    return (size_t) -2;
+# endif
+
+  if (! pwc)
+    pwc = &wc;
+
 # if MBRTOWC_RETVAL_BUG
   {
     static mbstate_t internal_state;
@@ -352,8 +368,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
         size_t count = 0;
         for (; n > 0; s++, n--)
           {
-            wchar_t wc;
-            size_t ret = mbrtowc (&wc, s, 1, ps);
+            ret = mbrtowc (&wc, s, 1, ps);
 
             if (ret == (size_t)(-1))
               return (size_t)(-1);
@@ -361,8 +376,7 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
             if (ret != (size_t)(-2))
               {
                 /* The multibyte character has been completed.  */
-                if (pwc != NULL)
-                  *pwc = wc;
+                *pwc = wc;
                 return (wc == 0 ? 0 : count);
               }
           }
@@ -371,32 +385,23 @@ rpl_mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
   }
 # endif
 
-# if MBRTOWC_NUL_RETVAL_BUG
-  {
-    wchar_t wc;
-    size_t ret = mbrtowc (&wc, s, n, ps);
-
-    if (ret != (size_t)(-1) && ret != (size_t)(-2))
-      {
-        if (pwc != NULL)
-          *pwc = wc;
-        if (wc == 0)
-          ret = 0;
-      }
-    return ret;
-  }
-# else
-  {
-#   if MBRTOWC_NULL_ARG1_BUG
-    wchar_t dummy;
+  ret = mbrtowc (pwc, s, n, ps);
 
-    if (pwc == NULL)
-      pwc = &dummy;
-#   endif
+# if MBRTOWC_NUL_RETVAL_BUG
+  if (ret < (size_t) -2 && !*pwc)
+    return 0;
+# endif
 
-    return mbrtowc (pwc, s, n, ps);
-  }
+# if C_LOCALE_MAYBE_EILSEQ
+  if ((size_t) -2 <= ret && n != 0 && ! hard_locale (LC_CTYPE))
+    {
+      unsigned char uc = *s;
+      *pwc = uc;
+      return 1;
+    }
 # endif
+
+  return ret;
 }
 
 #endif
index 97ef1da..7e7c941 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005,
    based on earlier glibc code.
 
index 26fbb7f..372b523 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for initial conversion state.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 85e938b..ed13a42 100644 (file)
@@ -1,5 +1,5 @@
 /* Counting the multibyte characters in a string.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2007.
 
    This program is free software: you can redistribute it and/or modify
index b50e973..f99fa34 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 5a0b888..905547a 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 116ff49..54bf6f7 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert string to wide string.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index f84e689..bc738d4 100644 (file)
@@ -1,5 +1,5 @@
-/* Searching in a string.
-   Copyright (C) 2005-2013 Free Software Foundation, Inc.
+/* Searching in a string.  -*- coding: utf-8 -*-
+   Copyright (C) 2005-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005.
 
    This program is free software: you can redistribute it and/or modify
@@ -45,11 +45,13 @@ knuth_morris_pratt_multibyte (const char *haystack, const char *needle,
   size_t *table;
 
   /* Allocate room for needle_mbchars and the table.  */
-  char *memory = (char *) nmalloca (m, sizeof (mbchar_t) + sizeof (size_t));
+  void *memory = nmalloca (m, sizeof (mbchar_t) + sizeof (size_t));
+  void *table_memory;
   if (memory == NULL)
     return false;
-  needle_mbchars = (mbchar_t *) memory;
-  table = (size_t *) (memory + m * sizeof (mbchar_t));
+  needle_mbchars = memory;
+  table_memory = needle_mbchars + m;
+  table = table_memory;
 
   /* Fill needle_mbchars.  */
   {
index 767ab39..4be2994 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index 632f2e1..fb2b651 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert multibyte character to wide character.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2011.
 
    This program is free software: you can redistribute it and/or modify
index c5f5fce..aad4fea 100644 (file)
@@ -1,5 +1,5 @@
 /* Iterating through multibyte strings: macros for multi-byte encodings.
-   Copyright (C) 2001, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This 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 "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 3db38a9..b565542 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2013
+/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2016
    Free Software Foundation, Inc.
 
    Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
index 7a9af6c..90ed78e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2013 Free Software
+/* Copyright (C) 1998-1999, 2001, 2005-2007, 2009-2016 Free Software
    Foundation, Inc.
    This file is derived from the one in the GNU C Library.
 
index 4287acf..2f586ae 100644 (file)
@@ -1,4 +1,37 @@
+/* mktime variant that also uses an offset guess
+
+   Copyright 2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public
+   License as published by the Free Software Foundation; either
+   version 3 of the License, or (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public
+   License along with this program; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
 #include <time.h>
+
+/* mktime_offset_t is a signed type wide enough to hold a UTC offset
+   in seconds, and used as part of the type of the offset-guess
+   argument to mktime_internal.  Use time_t on platforms where time_t
+   is signed, to be compatible with platforms like BeOS that export
+   this implementation detail of mktime.  On platforms where time_t is
+   unsigned, GNU and POSIX code can assume 'int' is at least 32 bits
+   which is wide enough for a UTC offset.  */
+
+#if TIME_T_IS_SIGNED
+typedef time_t mktime_offset_t;
+#else
+typedef int mktime_offset_t;
+#endif
+
 time_t mktime_internal (struct tm *,
                         struct tm * (*) (time_t const *, struct tm *),
-                        time_t *);
+                        mktime_offset_t *);
index e660a23..8ee4e5e 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert a 'struct tm' to a time_t value.
-   Copyright (C) 1993-2013 Free Software Foundation, Inc.
+   Copyright (C) 1993-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Paul Eggert <eggert@twinsun.com>.
 
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-/* Define this to have a standalone program to test this implementation of
+/* Define this to 1 to have a standalone program to test this implementation of
    mktime.  */
-/* #define DEBUG 1 */
+#ifndef DEBUG_MKTIME
+# define DEBUG_MKTIME 0
+#endif
 
-#ifndef _LIBC
+#if !defined _LIBC && !DEBUG_MKTIME
 # include <config.h>
 #endif
 
 #include <time.h>
 
 #include <limits.h>
+#include <stdbool.h>
 
-#include <string.h>            /* For the real memcpy prototype.  */
+#include <intprops.h>
+#include <verify.h>
 
-#if DEBUG
+#if DEBUG_MKTIME
 # include <stdio.h>
 # include <stdlib.h>
+# include <string.h>
 /* Make it work even if the system's libc has its own mktime routine.  */
 # undef mktime
 # define mktime my_mktime
-#endif /* DEBUG */
-
-/* Some of the code in this file assumes that signed integer overflow
-   silently wraps around.  This assumption can't easily be programmed
-   around, nor can it be checked for portably at compile-time or
-   easily eliminated at run-time.
-
-   Define WRAPV to 1 if the assumption is valid and if
-     #pragma GCC optimize ("wrapv")
-   does not trigger GCC bug 51793
-   <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51793>.
-   Otherwise, define it to 0; this forces the use of slower code that,
-   while not guaranteed by the C Standard, works on all production
-   platforms that we know about.  */
-#ifndef WRAPV
-# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \
-      && defined __GLIBC__)
-#  pragma GCC optimize ("wrapv")
-#  define WRAPV 1
-# else
-#  define WRAPV 0
-# endif
 #endif
 
-/* Verify a requirement at compile-time (unlike assert, which is runtime).  */
-#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
+/* A signed type that can represent an integer number of years
+   multiplied by three times the number of seconds in a year.  It is
+   needed when converting a tm_year value times the number of seconds
+   in a year.  The factor of three comes because these products need
+   to be subtracted from each other, and sometimes with an offset
+   added to them, without worrying about overflow.
 
-/* A signed type that is at least one bit wider than int.  */
-#if INT_MAX <= LONG_MAX / 2
+   Much of the code uses long_int to represent time_t values, to
+   lessen the hassle of dealing with platforms where time_t is
+   unsigned, and because long_int should suffice to represent all
+   time_t values that mktime can generate even on platforms where
+   time_t is excessively wide.  */
+
+#if INT_MAX <= LONG_MAX / 3 / 366 / 24 / 60 / 60
 typedef long int long_int;
 #else
 typedef long long int long_int;
 #endif
-verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
+verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 3 / 366 / 24 / 60 / 60);
 
 /* Shift A right by B bits portably, by dividing A by 2**B and
-   truncating towards minus infinity.  A and B should be free of side
-   effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
-   INT_BITS is the number of useful bits in an int.  GNU code can
-   assume that INT_BITS is at least 32.
+   truncating towards minus infinity.  B should be in the range 0 <= B
+   <= LONG_INT_BITS - 2, where LONG_INT_BITS is the number of useful
+   bits in a long_int.  LONG_INT_BITS is at least 32.
 
    ISO C99 says that A >> B is implementation-defined if A < 0.  Some
    implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift
    right in the usual way when A < 0, so SHR falls back on division if
    ordinary A >> B doesn't seem to be the usual signed shift.  */
-#define SHR(a, b)                                               \
-  ((-1 >> 1 == -1                                               \
-    && (long_int) -1 >> 1 == -1                                 \
-    && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t)))      \
-   ? (a) >> (b)                                                 \
-   : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
-
-/* The extra casts in the following macros work around compiler bugs,
-   e.g., in Cray C 5.0.3.0.  */
-
-/* True if the arithmetic type T is an integer type.  bool counts as
-   an integer.  */
-#define TYPE_IS_INTEGER(t) ((t) 1.5 == 1)
-
-/* True if negative values of the signed integer type T use two's
-   complement, or if T is an unsigned integer type.  */
-#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-
-/* True if the arithmetic type T is signed.  */
-#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
-
-/* The maximum and minimum values for the integer type T.  These
-   macros have undefined behavior if T is signed and has padding bits.
-   If this is a problem for you, please let us know how to fix it for
-   your host.  */
-#define TYPE_MINIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-       ? (t) 0 \
-       : ~ TYPE_MAXIMUM (t)))
-#define TYPE_MAXIMUM(t) \
-  ((t) (! TYPE_SIGNED (t) \
-       ? (t) -1 \
-       : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
-
-#ifndef TIME_T_MIN
-# define TIME_T_MIN TYPE_MINIMUM (time_t)
-#endif
-#ifndef TIME_T_MAX
-# define TIME_T_MAX TYPE_MAXIMUM (time_t)
-#endif
-#define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1)
 
-verify (time_t_is_integer, TYPE_IS_INTEGER (time_t));
-verify (twos_complement_arithmetic,
-       (TYPE_TWOS_COMPLEMENT (int)
-        && TYPE_TWOS_COMPLEMENT (long_int)
-        && TYPE_TWOS_COMPLEMENT (time_t)));
+static long_int
+shr (long_int a, int b)
+{
+  long_int one = 1;
+  return (-one >> 1 == -1
+         ? a >> b
+         : a / (one << b) - (a % (one << b) < 0));
+}
+
+/* Bounds for the intersection of time_t and long_int.  */
+
+static long_int const mktime_min
+  = ((TYPE_SIGNED (time_t) && TYPE_MINIMUM (time_t) < TYPE_MINIMUM (long_int))
+     ? TYPE_MINIMUM (long_int) : TYPE_MINIMUM (time_t));
+static long_int const mktime_max
+  = (TYPE_MAXIMUM (long_int) < TYPE_MAXIMUM (time_t)
+     ? TYPE_MAXIMUM (long_int) : TYPE_MAXIMUM (time_t));
+
+verify (TYPE_IS_INTEGER (time_t));
 
 #define EPOCH_YEAR 1970
 #define TM_YEAR_BASE 1900
-verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
+verify (TM_YEAR_BASE % 100 == 0);
 
-/* Return 1 if YEAR + TM_YEAR_BASE is a leap year.  */
-static int
+/* Is YEAR + TM_YEAR_BASE a leap year?  */
+static bool
 leapyear (long_int year)
 {
   /* Don't add YEAR to TM_YEAR_BASE, as that might overflow.
@@ -166,7 +130,9 @@ const unsigned short int __mon_yday[2][13] =
   };
 
 
-#ifndef _LIBC
+#ifdef _LIBC
+typedef time_t mktime_offset_t;
+#else
 /* Portable standalone applications should supply a <time.h> that
    declares a POSIX-compliant localtime_r, for the benefit of older
    implementations that lack localtime_r or have a nonstandard one.
@@ -177,9 +143,9 @@ const unsigned short int __mon_yday[2][13] =
 # include "mktime-internal.h"
 #endif
 
-/* Return 1 if the values A and B differ according to the rules for
-   tm_isdst: A and B differ if one is zero and the other positive.  */
-static int
+/* Do the values A and B differ according to the rules for tm_isdst?
+   A and B differ if one is zero and the other positive.  */
+static bool
 isdst_differ (int a, int b)
 {
   return (!a != !b) && (0 <= a) && (0 <= b);
@@ -190,104 +156,65 @@ isdst_differ (int a, int b)
    were not adjusted between the time stamps.
 
    The YEAR values uses the same numbering as TP->tm_year.  Values
-   need not be in the usual range.  However, YEAR1 must not be less
-   than 2 * INT_MIN or greater than 2 * INT_MAX.
+   need not be in the usual range.  However, YEAR1 must not overflow
+   when multiplied by three times the number of seconds in a year, and
+   likewise for YDAY1 and three times the number of seconds in a day.  */
 
-   The result may overflow.  It is the caller's responsibility to
-   detect overflow.  */
-
-static time_t
+static long_int
 ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1,
            int year0, int yday0, int hour0, int min0, int sec0)
 {
-  verify (C99_integer_division, -1 / 2 == 0);
+  verify (-1 / 2 == 0);
 
   /* Compute intervening leap days correctly even if year is negative.
      Take care to avoid integer overflow here.  */
-  int a4 = SHR (year1, 2) + SHR (TM_YEAR_BASE, 2) - ! (year1 & 3);
-  int b4 = SHR (year0, 2) + SHR (TM_YEAR_BASE, 2) - ! (year0 & 3);
+  int a4 = shr (year1, 2) + shr (TM_YEAR_BASE, 2) - ! (year1 & 3);
+  int b4 = shr (year0, 2) + shr (TM_YEAR_BASE, 2) - ! (year0 & 3);
   int a100 = a4 / 25 - (a4 % 25 < 0);
   int b100 = b4 / 25 - (b4 % 25 < 0);
-  int a400 = SHR (a100, 2);
-  int b400 = SHR (b100, 2);
+  int a400 = shr (a100, 2);
+  int b400 = shr (b100, 2);
   int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
 
-  /* Compute the desired time in time_t precision.  Overflow might
-     occur here.  */
-  time_t tyear1 = year1;
-  time_t years = tyear1 - year0;
-  time_t days = 365 * years + yday1 - yday0 + intervening_leap_days;
-  time_t hours = 24 * days + hour1 - hour0;
-  time_t minutes = 60 * hours + min1 - min0;
-  time_t seconds = 60 * minutes + sec1 - sec0;
+  /* Compute the desired time without overflowing.  */
+  long_int years = year1 - year0;
+  long_int days = 365 * years + yday1 - yday0 + intervening_leap_days;
+  long_int hours = 24 * days + hour1 - hour0;
+  long_int minutes = 60 * hours + min1 - min0;
+  long_int seconds = 60 * minutes + sec1 - sec0;
   return seconds;
 }
 
-/* Return the average of A and B, even if A + B would overflow.  */
-static time_t
-time_t_avg (time_t a, time_t b)
+/* Return the average of A and B, even if A + B would overflow.
+   Round toward positive infinity.  */
+static long_int
+long_int_avg (long_int a, long_int b)
 {
-  return SHR (a, 1) + SHR (b, 1) + (a & b & 1);
-}
-
-/* Return 1 if A + B does not overflow.  If time_t is unsigned and if
-   B's top bit is set, assume that the sum represents A - -B, and
-   return 1 if the subtraction does not wrap around.  */
-static int
-time_t_add_ok (time_t a, time_t b)
-{
-  if (! TYPE_SIGNED (time_t))
-    {
-      time_t sum = a + b;
-      return (sum < a) == (TIME_T_MIDPOINT <= b);
-    }
-  else if (WRAPV)
-    {
-      time_t sum = a + b;
-      return (sum < a) == (b < 0);
-    }
-  else
-    {
-      time_t avg = time_t_avg (a, b);
-      return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
-    }
-}
-
-/* Return 1 if A + B does not overflow.  */
-static int
-time_t_int_add_ok (time_t a, int b)
-{
-  verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX);
-  if (WRAPV)
-    {
-      time_t sum = a + b;
-      return (sum < a) == (b < 0);
-    }
-  else
-    {
-      int a_odd = a & 1;
-      time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b));
-      return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
-    }
+  return shr (a, 1) + shr (b, 1) + ((a | b) & 1);
 }
 
 /* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC),
-   assuming that *T corresponds to *TP and that no clock adjustments
+   assuming that T corresponds to *TP and that no clock adjustments
    occurred between *TP and the desired time.
-   If TP is null, return a value not equal to *T; this avoids false matches.
-   If overflow occurs, yield the minimal or maximal value, except do not
-   yield a value equal to *T.  */
-static time_t
+   Although T and the returned value are of type long_int,
+   they represent time_t values and must be in time_t range.
+   If TP is null, return a value not equal to T; this avoids false matches.
+   YEAR and YDAY must not be so large that multiplying them by three times the
+   number of seconds in a year (or day, respectively) would overflow long_int.
+   If the returned value would be out of range, yield the minimal or
+   maximal in-range value, except do not yield a value equal to T.  */
+static long_int
 guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
-              const time_t *t, const struct tm *tp)
+              long_int t, const struct tm *tp)
 {
   if (tp)
     {
-      time_t d = ydhms_diff (year, yday, hour, min, sec,
-                            tp->tm_year, tp->tm_yday,
-                            tp->tm_hour, tp->tm_min, tp->tm_sec);
-      if (time_t_add_ok (*t, d))
-       return *t + d;
+      long_int result;
+      long_int d = ydhms_diff (year, yday, hour, min, sec,
+                              tp->tm_year, tp->tm_yday,
+                              tp->tm_hour, tp->tm_min, tp->tm_sec);
+      if (! INT_ADD_WRAPV (t, d, &result))
+       return result;
     }
 
   /* Overflow occurred one way or another.  Return the nearest result
@@ -295,32 +222,51 @@ guess_time_tm (long_int year, long_int yday, int hour, int min, int sec,
      if the actual difference is nonzero, as that would cause a false
      match; and don't oscillate between two values, as that would
      confuse the spring-forward gap detector.  */
-  return (*t < TIME_T_MIDPOINT
-         ? (*t <= TIME_T_MIN + 1 ? *t + 1 : TIME_T_MIN)
-         : (TIME_T_MAX - 1 <= *t ? *t - 1 : TIME_T_MAX));
+  return (t < long_int_avg (mktime_min, mktime_max)
+         ? (t <= mktime_min + 1 ? t + 1 : mktime_min)
+         : (mktime_max - 1 <= t ? t - 1 : mktime_max));
+}
+
+/* Use CONVERT to convert T to a struct tm value in *TM.  T must be in
+   range for time_t.  Return TM if successful, NULL if T is out of
+   range for CONVERT.  */
+static struct tm *
+convert_time (struct tm *(*convert) (const time_t *, struct tm *),
+             long_int t, struct tm *tm)
+{
+  time_t x = t;
+  return convert (&x, tm);
 }
 
 /* Use CONVERT to convert *T to a broken down time in *TP.
    If *T is out of range for conversion, adjust it so that
-   it is the nearest in-range value and then convert that.  */
+   it is the nearest in-range value and then convert that.
+   A value is in range if it fits in both time_t and long_int.  */
 static struct tm *
 ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
-               time_t *t, struct tm *tp)
+               long_int *t, struct tm *tp)
 {
-  struct tm *r = convert (t, tp);
+  struct tm *r;
+  if (*t < mktime_min)
+    *t = mktime_min;
+  else if (mktime_max < *t)
+    *t = mktime_max;
+  r = convert_time (convert, *t, tp);
 
   if (!r && *t)
     {
-      time_t bad = *t;
-      time_t ok = 0;
+      long_int bad = *t;
+      long_int ok = 0;
 
-      /* BAD is a known unconvertible time_t, and OK is a known good one.
+      /* BAD is a known unconvertible value, and OK is a known good one.
         Use binary search to narrow the range between BAD and OK until
         they differ by 1.  */
-      while (bad != ok + (bad < 0 ? -1 : 1))
+      while (true)
        {
-         time_t mid = *t = time_t_avg (ok, bad);
-         r = convert (t, tp);
+         long_int mid = long_int_avg (ok, bad);
+         if (mid != ok && mid != bad)
+           break;
+         r = convert_time (convert, mid, tp);
          if (r)
            ok = mid;
          else
@@ -331,15 +277,13 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
        {
          /* The last conversion attempt failed;
             revert to the most recent successful attempt.  */
-         *t = ok;
-         r = convert (t, tp);
+         r = convert_time (convert, ok, tp);
        }
     }
 
   return r;
 }
 
-
 /* Convert *TP to a time_t value, inverting
    the monotonic and mostly-unit-linear conversion function CONVERT.
    Use *OFFSET to keep track of a guess at the offset of the result,
@@ -349,9 +293,9 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *),
 time_t
 __mktime_internal (struct tm *tp,
                   struct tm *(*convert) (const time_t *, struct tm *),
-                  time_t *offset)
+                  mktime_offset_t *offset)
 {
-  time_t t, gt, t0, t1, t2;
+  long_int t, gt, t0, t1, t2, dt;
   struct tm tm;
 
   /* The maximum number of probes (calls to CONVERT) should be enough
@@ -381,9 +325,7 @@ __mktime_internal (struct tm *tp,
   long_int year = lyear_requested + mon_years;
 
   /* The other values need not be in range:
-     the remaining code handles minor overflows correctly,
-     assuming int and time_t arithmetic wraps around.
-     Major overflows are caught at the end.  */
+     the remaining code handles overflows correctly.  */
 
   /* Calculate day of year from year, month, and day of month.
      The result need not be in range.  */
@@ -393,7 +335,7 @@ __mktime_internal (struct tm *tp,
   long_int lmday = mday;
   long_int yday = mon_yday + lmday;
 
-  time_t guessed_offset = *offset;
+  int negative_offset_guess;
 
   int sec_requested = sec;
 
@@ -410,71 +352,14 @@ __mktime_internal (struct tm *tp,
   /* Invert CONVERT by probing.  First assume the same offset as last
      time.  */
 
+  INT_SUBTRACT_WRAPV (0, *offset, &negative_offset_guess);
   t0 = ydhms_diff (year, yday, hour, min, sec,
-                  EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, - guessed_offset);
-
-  if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3)
-    {
-      /* time_t isn't large enough to rule out overflows, so check
-        for major overflows.  A gross check suffices, since if t0
-        has overflowed, it is off by a multiple of TIME_T_MAX -
-        TIME_T_MIN + 1.  So ignore any component of the difference
-        that is bounded by a small value.  */
-
-      /* Approximate log base 2 of the number of time units per
-        biennium.  A biennium is 2 years; use this unit instead of
-        years to avoid integer overflow.  For example, 2 average
-        Gregorian years are 2 * 365.2425 * 24 * 60 * 60 seconds,
-        which is 63113904 seconds, and rint (log2 (63113904)) is
-        26.  */
-      int ALOG2_SECONDS_PER_BIENNIUM = 26;
-      int ALOG2_MINUTES_PER_BIENNIUM = 20;
-      int ALOG2_HOURS_PER_BIENNIUM = 14;
-      int ALOG2_DAYS_PER_BIENNIUM = 10;
-      int LOG2_YEARS_PER_BIENNIUM = 1;
-
-      int approx_requested_biennia =
-       (SHR (year_requested, LOG2_YEARS_PER_BIENNIUM)
-        - SHR (EPOCH_YEAR - TM_YEAR_BASE, LOG2_YEARS_PER_BIENNIUM)
-        + SHR (mday, ALOG2_DAYS_PER_BIENNIUM)
-        + SHR (hour, ALOG2_HOURS_PER_BIENNIUM)
-        + SHR (min, ALOG2_MINUTES_PER_BIENNIUM)
-        + (LEAP_SECONDS_POSSIBLE
-           ? 0
-           : SHR (sec, ALOG2_SECONDS_PER_BIENNIUM)));
-
-      int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
-      int diff = approx_biennia - approx_requested_biennia;
-      int approx_abs_diff = diff < 0 ? -1 - diff : diff;
-
-      /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously
-        gives a positive value of 715827882.  Setting a variable
-        first then doing math on it seems to work.
-        (ghazi@caip.rutgers.edu) */
-      time_t time_t_max = TIME_T_MAX;
-      time_t time_t_min = TIME_T_MIN;
-      time_t overflow_threshold =
-       (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM;
-
-      if (overflow_threshold < approx_abs_diff)
-       {
-         /* Overflow occurred.  Try repairing it; this might work if
-            the time zone offset is enough to undo the overflow.  */
-         time_t repaired_t0 = -1 - t0;
-         approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM);
-         diff = approx_biennia - approx_requested_biennia;
-         approx_abs_diff = diff < 0 ? -1 - diff : diff;
-         if (overflow_threshold < approx_abs_diff)
-           return -1;
-         guessed_offset += repaired_t0 - t0;
-         t0 = repaired_t0;
-       }
-    }
+                  EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, negative_offset_guess);
 
   /* Repeatedly use the error to improve the guess.  */
 
   for (t = t1 = t2 = t0, dst2 = 0;
-       (gt = guess_time_tm (year, yday, hour, min, sec, &t,
+       (gt = guess_time_tm (year, yday, hour, min, sec, t,
                            ranged_convert (convert, &t, &tm)),
        t != gt);
        t1 = t2, t2 = t, t = gt, dst2 = tm.tm_isdst != 0)
@@ -531,39 +416,42 @@ __mktime_internal (struct tm *tp,
 
       for (delta = stride; delta < delta_bound; delta += stride)
        for (direction = -1; direction <= 1; direction += 2)
-         if (time_t_int_add_ok (t, delta * direction))
-           {
-             time_t ot = t + delta * direction;
-             struct tm otm;
-             ranged_convert (convert, &ot, &otm);
-             if (! isdst_differ (isdst, otm.tm_isdst))
-               {
-                 /* We found the desired tm_isdst.
-                    Extrapolate back to the desired time.  */
-                 t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm);
-                 ranged_convert (convert, &t, &tm);
-                 goto offset_found;
-               }
-           }
+         {
+           long_int ot;
+           if (! INT_ADD_WRAPV (t, delta * direction, &ot))
+             {
+               struct tm otm;
+               ranged_convert (convert, &ot, &otm);
+               if (! isdst_differ (isdst, otm.tm_isdst))
+                 {
+                   /* We found the desired tm_isdst.
+                      Extrapolate back to the desired time.  */
+                   t = guess_time_tm (year, yday, hour, min, sec, ot, &otm);
+                   ranged_convert (convert, &t, &tm);
+                   goto offset_found;
+                 }
+             }
+         }
     }
 
  offset_found:
-  *offset = guessed_offset + t - t0;
+  /* 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, &dt);
+  INT_SUBTRACT_WRAPV (dt, negative_offset_guess, offset);
 
   if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec)
     {
       /* Adjust time to reflect the tm_sec requested, not the normalized value.
         Also, repair any damage from a false match due to a leap second.  */
-      int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
-      if (! time_t_int_add_ok (t, sec_requested))
+      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)
+         || ! (mktime_min <= t && t <= mktime_max)
+         || ! convert_time (convert, t, &tm))
        return -1;
-      t1 = t + sec_requested;
-      if (! time_t_int_add_ok (t1, sec_adjustment))
-       return -1;
-      t2 = t1 + sec_adjustment;
-      if (! convert (&t2, &tm))
-       return -1;
-      t = t2;
     }
 
   *tp = tm;
@@ -571,11 +459,7 @@ __mktime_internal (struct tm *tp,
 }
 
 
-/* FIXME: This should use a signed type wide enough to hold any UTC
-   offset in seconds.  'int' should be good enough for GNU code.  We
-   can't fix this unilaterally though, as other modules invoke
-   __mktime_internal.  */
-static time_t localtime_offset;
+static mktime_offset_t localtime_offset;
 
 /* Convert *TP to a time_t value.  */
 time_t
@@ -586,6 +470,8 @@ mktime (struct tm *tp)
      time zone names contained in the external variable 'tzname' shall
      be set as if the tzset() function had been called.  */
   __tzset ();
+#elif HAVE_TZSET
+  tzset ();
 #endif
 
   return __mktime_internal (tp, __localtime_r, &localtime_offset);
@@ -600,7 +486,7 @@ libc_hidden_def (mktime)
 libc_hidden_weak (timelocal)
 #endif
 \f
-#if DEBUG
+#if DEBUG_MKTIME
 
 static int
 not_equal_tm (const struct tm *a, const struct tm *b)
@@ -652,6 +538,14 @@ main (int argc, char **argv)
   time_t tk, tl, tl1;
   char trailer;
 
+  /* Sanity check, plus call tzset.  */
+  tl = 0;
+  if (! localtime (&tl))
+    {
+      printf ("localtime (0) fails\n");
+      status = 1;
+    }
+
   if ((argc == 3 || argc == 4)
       && (sscanf (argv[1], "%d-%d-%d%c",
                  &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer)
@@ -665,12 +559,7 @@ main (int argc, char **argv)
       tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]);
       tmk = tm;
       tl = mktime (&tmk);
-      lt = localtime (&tl);
-      if (lt)
-       {
-         tml = *lt;
-         lt = &tml;
-       }
+      lt = localtime_r (&tl, &tml);
       printf ("mktime returns %ld == ", (long int) tl);
       print_tm (&tmk);
       printf ("\n");
@@ -685,16 +574,16 @@ main (int argc, char **argv)
       if (argc == 4)
        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
          {
-           lt = localtime (&tl);
+           lt = localtime_r (&tl, &tml);
            if (lt)
              {
-               tmk = tml = *lt;
+               tmk = tml;
                tk = mktime (&tmk);
                status |= check_result (tk, tmk, tl, &tml);
              }
            else
              {
-               printf ("localtime (%ld) yields 0\n", (long int) tl);
+               printf ("localtime_r (%ld) yields 0\n", (long int) tl);
                status = 1;
              }
            tl1 = tl + by;
@@ -705,16 +594,16 @@ main (int argc, char **argv)
        for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1)
          {
            /* Null benchmark.  */
-           lt = localtime (&tl);
+           lt = localtime_r (&tl, &tml);
            if (lt)
              {
-               tmk = tml = *lt;
+               tmk = tml;
                tk = tl;
                status |= check_result (tk, tmk, tl, &tml);
              }
            else
              {
-               printf ("localtime (%ld) yields 0\n", (long int) tl);
+               printf ("localtime_r (%ld) yields 0\n", (long int) tl);
                status = 1;
              }
            tl1 = tl + by;
@@ -732,10 +621,10 @@ main (int argc, char **argv)
   return status;
 }
 
-#endif /* DEBUG */
+#endif /* DEBUG_MKTIME */
 \f
 /*
 Local Variables:
-compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime"
+compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime"
 End:
 */
index 72a6b6e..baaf39e 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 
 # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
 
-static void cdecl
+static void __cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
@@ -45,7 +45,7 @@ gl_msvc_invalid_parameter_handler (const wchar_t *expression,
 
 #  if defined _MSC_VER
 
-static void cdecl
+static void __cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
@@ -94,7 +94,7 @@ gl_msvc_inval_current (void)
     }
 }
 
-static void cdecl
+static void __cdecl
 gl_msvc_invalid_parameter_handler (const wchar_t *expression,
                                    const wchar_t *function,
                                    const wchar_t *file,
index dcb0353..027c949 100644 (file)
@@ -1,5 +1,5 @@
 /* Invalid parameter handler for MSVC runtime libraries.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 8d65472..ba75bbf 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 5f52181..3493b84 100644 (file)
@@ -1,6 +1,6 @@
 /* Wrappers that don't throw invalid parameter notifications
    with MSVC runtime libraries.
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 771c953..699511a 100644 (file)
@@ -1,6 +1,6 @@
 /* nl_langinfo() replacement: query locale dependent information.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 /* Specification.  */
 #include <langinfo.h>
 
+#include <locale.h>
+#include <string.h>
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# define WIN32_LEAN_AND_MEAN  /* avoid including junk */
+# include <windows.h>
+# include <stdio.h>
+#endif
+
+/* Return the codeset of the current locale, if this is easily deducible.
+   Otherwise, return "".  */
+static char *
+ctype_codeset (void)
+{
+  static char buf[2 + 10 + 1];
+  size_t buflen = 0;
+  char const *locale = setlocale (LC_CTYPE, NULL);
+  char *codeset = buf;
+  size_t codesetlen;
+  codeset[0] = '\0';
+
+  if (locale && locale[0])
+    {
+      /* If the locale name contains an encoding after the dot, return it.  */
+      char *dot = strchr (locale, '.');
+
+      if (dot)
+        {
+          /* Look for the possible @... trailer and remove it, if any.  */
+          char *codeset_start = dot + 1;
+          char const *modifier = strchr (codeset_start, '@');
+
+          if (! modifier)
+            codeset = codeset_start;
+          else
+            {
+              codesetlen = modifier - codeset_start;
+              if (codesetlen < sizeof buf)
+                {
+                  codeset = memcpy (buf, codeset_start, codesetlen);
+                  codeset[codesetlen] = '\0';
+                }
+            }
+        }
+    }
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+  /* If setlocale is successful, it returns the number of the
+     codepage, as a string.  Otherwise, fall back on Windows API
+     GetACP, which returns the locale's codepage as a number (although
+     this doesn't change according to what the 'setlocale' call specified).
+     Either way, prepend "CP" to make it a valid codeset name.  */
+  codesetlen = strlen (codeset);
+  if (0 < codesetlen && codesetlen < sizeof buf - 2)
+    memmove (buf + 2, codeset, codesetlen + 1);
+  else
+    sprintf (buf + 2, "%u", GetACP ());
+  codeset = memcpy (buf, "CP", 2);
+#endif
+  return codeset;
+}
+
+
 #if REPLACE_NL_LANGINFO
 
 /* Override nl_langinfo with support for added nl_item values.  */
 
-# include <locale.h>
-# include <string.h>
-
 # undef nl_langinfo
 
 char *
@@ -36,36 +95,7 @@ rpl_nl_langinfo (nl_item item)
     {
 # if GNULIB_defined_CODESET
     case CODESET:
-      {
-        const char *locale;
-        static char buf[2 + 10 + 1];
-
-        locale = setlocale (LC_CTYPE, NULL);
-        if (locale != NULL && locale[0] != '\0')
-          {
-            /* If the locale name contains an encoding after the dot, return
-               it.  */
-            const char *dot = strchr (locale, '.');
-
-            if (dot != NULL)
-              {
-                const char *modifier;
-
-                dot++;
-                /* Look for the possible @... trailer and remove it, if any.  */
-                modifier = strchr (dot, '@');
-                if (modifier == NULL)
-                  return dot;
-                if (modifier - dot < sizeof (buf))
-                  {
-                    memcpy (buf, dot, modifier - dot);
-                    buf [modifier - dot] = '\0';
-                    return buf;
-                  }
-              }
-          }
-        return "";
-      }
+      return ctype_codeset ();
 # endif
 # if GNULIB_defined_T_FMT_AMPM
     case T_FMT_AMPM:
@@ -111,42 +141,28 @@ rpl_nl_langinfo (nl_item item)
 
 #else
 
-/* Provide nl_langinfo from scratch.  */
-
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Provide nl_langinfo from scratch, either for native MS-Windows, or
+   for old Unix platforms without locales, such as Linux libc5 or
+   BeOS.  */
 
-/* Native Windows platforms.  */
-
-#  define WIN32_LEAN_AND_MEAN  /* avoid including junk */
-#  include <windows.h>
-
-#  include <stdio.h>
-
-# else
-
-/* An old Unix platform without locales, such as Linux libc5 or BeOS.  */
-
-# endif
-
-# include <locale.h>
+# include <time.h>
 
 char *
 nl_langinfo (nl_item item)
 {
+  static char nlbuf[100];
+  struct tm tmm = { 0 };
+
   switch (item)
     {
     /* nl_langinfo items of the LC_CTYPE category */
     case CODESET:
-# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
       {
-        static char buf[2 + 10 + 1];
-
-        /* The Windows API has a function returning the locale's codepage as
-           a number.  */
-        sprintf (buf, "CP%u", GetACP ());
-        return buf;
+        char *codeset = ctype_codeset ();
+        if (*codeset)
+          return codeset;
       }
-# elif defined __BEOS__
+# ifdef __BEOS__
       return "UTF-8";
 # else
       return "ISO-8859-1";
@@ -156,6 +172,8 @@ nl_langinfo (nl_item item)
       return localeconv () ->decimal_point;
     case THOUSEP:
       return localeconv () ->thousands_sep;
+    case GROUPING:
+      return localeconv () ->grouping;
     /* nl_langinfo items of the LC_TIME category.
        TODO: Really use the locale.  */
     case D_T_FMT:
@@ -170,93 +188,126 @@ nl_langinfo (nl_item item)
     case T_FMT_AMPM:
       return "%I:%M:%S %p";
     case AM_STR:
-      return "AM";
+      if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm))
+        return "AM";
+      return nlbuf;
     case PM_STR:
-      return "PM";
+      tmm.tm_hour = 12;
+      if (!strftime (nlbuf, sizeof nlbuf, "%p", &tmm))
+        return "PM";
+      return nlbuf;
     case DAY_1:
-      return "Sunday";
     case DAY_2:
-      return "Monday";
     case DAY_3:
-      return "Tuesday";
     case DAY_4:
-      return "Wednesday";
     case DAY_5:
-      return "Thursday";
     case DAY_6:
-      return "Friday";
     case DAY_7:
-      return "Saturday";
+      {
+        static char const days[][sizeof "Wednesday"] = {
+          "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
+          "Friday", "Saturday"
+        };
+        tmm.tm_wday = item - DAY_1;
+        if (!strftime (nlbuf, sizeof nlbuf, "%A", &tmm))
+          return (char *) days[item - DAY_1];
+        return nlbuf;
+      }
     case ABDAY_1:
-      return "Sun";
     case ABDAY_2:
-      return "Mon";
     case ABDAY_3:
-      return "Tue";
     case ABDAY_4:
-      return "Wed";
     case ABDAY_5:
-      return "Thu";
     case ABDAY_6:
-      return "Fri";
     case ABDAY_7:
-      return "Sat";
+      {
+        static char const abdays[][sizeof "Sun"] = {
+          "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+        };
+        tmm.tm_wday = item - ABDAY_1;
+        if (!strftime (nlbuf, sizeof nlbuf, "%a", &tmm))
+          return (char *) abdays[item - ABDAY_1];
+        return nlbuf;
+      }
     case MON_1:
-      return "January";
     case MON_2:
-      return "February";
     case MON_3:
-      return "March";
     case MON_4:
-      return "April";
     case MON_5:
-      return "May";
     case MON_6:
-      return "June";
     case MON_7:
-      return "July";
     case MON_8:
-      return "August";
     case MON_9:
-      return "September";
     case MON_10:
-      return "October";
     case MON_11:
-      return "November";
     case MON_12:
-      return "December";
+      {
+        static char const months[][sizeof "September"] = {
+          "January", "February", "March", "April", "May", "June", "July",
+          "September", "October", "November", "December"
+        };
+        tmm.tm_mon = item - MON_1;
+        if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm))
+          return (char *) months[item - MON_1];
+        return nlbuf;
+      }
     case ABMON_1:
-      return "Jan";
     case ABMON_2:
-      return "Feb";
     case ABMON_3:
-      return "Mar";
     case ABMON_4:
-      return "Apr";
     case ABMON_5:
-      return "May";
     case ABMON_6:
-      return "Jun";
     case ABMON_7:
-      return "Jul";
     case ABMON_8:
-      return "Aug";
     case ABMON_9:
-      return "Sep";
     case ABMON_10:
-      return "Oct";
     case ABMON_11:
-      return "Nov";
     case ABMON_12:
-      return "Dec";
+      {
+        static char const abmonths[][sizeof "Jan"] = {
+          "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
+          "Sep", "Oct", "Nov", "Dec"
+        };
+        tmm.tm_mon = item - ABMON_1;
+        if (!strftime (nlbuf, sizeof nlbuf, "%b", &tmm))
+          return (char *) abmonths[item - ABMON_1];
+        return nlbuf;
+      }
     case ERA:
       return "";
     case ALT_DIGITS:
       return "\0\0\0\0\0\0\0\0\0\0";
-    /* nl_langinfo items of the LC_MONETARY category
-       TODO: Really use the locale. */
+    /* nl_langinfo items of the LC_MONETARY category.  */
     case CRNCYSTR:
-      return "-";
+      return localeconv () ->currency_symbol;
+    case INT_CURR_SYMBOL:
+      return localeconv () ->int_curr_symbol;
+    case MON_DECIMAL_POINT:
+      return localeconv () ->mon_decimal_point;
+    case MON_THOUSANDS_SEP:
+      return localeconv () ->mon_thousands_sep;
+    case MON_GROUPING:
+      return localeconv () ->mon_grouping;
+    case POSITIVE_SIGN:
+      return localeconv () ->positive_sign;
+    case NEGATIVE_SIGN:
+      return localeconv () ->negative_sign;
+    case FRAC_DIGITS:
+      return & localeconv () ->frac_digits;
+    case INT_FRAC_DIGITS:
+      return & localeconv () ->int_frac_digits;
+    case P_CS_PRECEDES:
+      return & localeconv () ->p_cs_precedes;
+    case N_CS_PRECEDES:
+      return & localeconv () ->n_cs_precedes;
+    case P_SEP_BY_SPACE:
+      return & localeconv () ->p_sep_by_space;
+    case N_SEP_BY_SPACE:
+      return & localeconv () ->n_sep_by_space;
+    case P_SIGN_POSN:
+      return & localeconv () ->p_sign_posn;
+    case N_SIGN_POSN:
+      return & localeconv () ->n_sign_posn;
     /* nl_langinfo items of the LC_MESSAGES category
        TODO: Really use the locale. */
     case YESEXPR:
index a0c43ea..e9c3120 100644 (file)
@@ -1,5 +1,5 @@
 /* Open a descriptor to a file.
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index a9ddc33..aee22f8 100644 (file)
@@ -1,5 +1,5 @@
 /* Define PATH_MAX somehow.  Requires sys/types.h.
-   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 Free Software
+   Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index ec19a08..f4a2f12 100644 (file)
@@ -1,6 +1,7 @@
 /* Parse arguments from a string and prepend them to an argv.
 
-   Copyright (C) 1999-2002, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006, 2009-2013, 2015-2016 Free Software
+   Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index c27e6bc..cfaed99 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2013 Free Software
+   Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index 2a9c2a3..256c413 100644 (file)
@@ -1,5 +1,5 @@
 /* Decomposed printf argument list.
-   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2013 Free Software
+   Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index 23cacc1..fad5d3d 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999-2000, 2002-2003, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2000, 2002-2003, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d8474be..a46d946 100644 (file)
@@ -1,5 +1,5 @@
 /* Parse printf format string.
-   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2013 Free Software
+   Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
index 0c195e5..debb760 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2003, 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index b4f3c27..0a57407 100644 (file)
@@ -1,5 +1,5 @@
 /* Program name management.
-   Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify
index 8cc8308..90ad284 100644 (file)
@@ -1,5 +1,5 @@
 /* Localization of proper names.
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This program is free software: you can redistribute it and/or modify
index 59dfade..83fac08 100644 (file)
@@ -1,5 +1,5 @@
-/* Localization of proper names.
-   Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
+/* Localization of proper names.  -*- coding: utf-8 -*-
+   Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This program is free software: you can redistribute it and/or modify
    have in common?
 
    A non-ASCII name. This causes trouble in the --version output. The simple
-   "solution", unfortunately mutilates the name.
+   "solution" unfortunately mutilates the name.
 
-     $ du --version| grep Granlund
+     $ du --version | grep Granlund
      Écrit par Torbjorn Granlund, David MacKenzie, Paul Eggert et Jim Meyering.
 
-     $ ptx --version| grep Pinard
+     $ ptx --version | grep Pinard
      Écrit par F. Pinard.
 
    What is desirable, is to print the full name if the output character set
    output will look like this:
       <translated name> (<original name in English>)
 
-   To use the 'propername' module is done in three simple steps:
+   To use the 'propername' module requires three simple steps:
 
      1) Add it to the list of gnulib modules to import,
 
-     2) Change the arguments of version_etc, from
+     2) Change the arguments of version_etc(),
 
           from "Paul Eggert"
           to   proper_name ("Paul Eggert")
index 1679796..b53d0ea 100644 (file)
@@ -1,6 +1,6 @@
 /* quote.h - prototypes for quote.c
 
-   Copyright (C) 1998-2001, 2003, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-2001, 2003, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 57a8382..73a5084 100644 (file)
@@ -1,6 +1,6 @@
 /* quotearg.c - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-2002, 2004-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -77,6 +77,8 @@ char const *const quoting_style_args[] =
   "literal",
   "shell",
   "shell-always",
+  "shell-escape",
+  "shell-escape-always",
   "c",
   "c-maybe",
   "escape",
@@ -91,6 +93,8 @@ enum quoting_style const quoting_style_vals[] =
   literal_quoting_style,
   shell_quoting_style,
   shell_always_quoting_style,
+  shell_escape_quoting_style,
+  shell_escape_always_quoting_style,
   c_quoting_style,
   c_maybe_quoting_style,
   escape_quoting_style,
@@ -116,7 +120,7 @@ clone_quoting_options (struct quoting_options *o)
 
 /* Get the value of O's quoting style.  If O is null, use the default.  */
 enum quoting_style
-get_quoting_style (struct quoting_options *o)
+get_quoting_style (struct quoting_options const *o)
 {
   return (o ? o : &default_quoting_options)->style;
 }
@@ -178,7 +182,7 @@ set_custom_quoting (struct quoting_options *o,
 static struct quoting_options /* NOT PURE!! */
 quoting_options_from_style (enum quoting_style style)
 {
-  struct quoting_options o = { 0, 0, { 0 }, NULL, NULL };
+  struct quoting_options o = { literal_quoting_style, 0, { 0 }, NULL, NULL };
   if (style == custom_quoting_style)
     abort ();
   o.style = style;
@@ -253,6 +257,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
   bool backslash_escapes = false;
   bool unibyte_locale = MB_CUR_MAX == 1;
   bool elide_outer_quotes = (flags & QA_ELIDE_OUTER_QUOTES) != 0;
+  bool pending_shell_escape_end = false;
 
 #define STORE(c) \
     do \
@@ -263,6 +268,36 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
       } \
     while (0)
 
+#define START_ESC() \
+    do \
+      { \
+        if (elide_outer_quotes) \
+          goto force_outer_quoting_style; \
+        escaping = true; \
+        if (quoting_style == shell_always_quoting_style \
+            && ! pending_shell_escape_end) \
+          { \
+            STORE ('\''); \
+            STORE ('$'); \
+            STORE ('\''); \
+            pending_shell_escape_end = true; \
+          } \
+        STORE ('\\'); \
+      } \
+    while (0)
+
+#define END_ESC() \
+    do \
+      { \
+        if (pending_shell_escape_end && ! escaping) \
+          { \
+            STORE ('\''); \
+            STORE ('\''); \
+            pending_shell_escape_end = false; \
+          } \
+      } \
+    while (0)
+
   switch (quoting_style)
     {
     case c_maybe_quoting_style:
@@ -321,11 +356,18 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
       }
       break;
 
+    case shell_escape_quoting_style:
+      backslash_escapes = true;
+      /* Fall through.  */
     case shell_quoting_style:
-      quoting_style = shell_always_quoting_style;
       elide_outer_quotes = true;
       /* Fall through.  */
+    case shell_escape_always_quoting_style:
+      if (!elide_outer_quotes)
+        backslash_escapes = true;
+      /* Fall through.  */
     case shell_always_quoting_style:
+      quoting_style = shell_always_quoting_style;
       if (!elide_outer_quotes)
         STORE ('\'');
       quote_string = "'";
@@ -345,10 +387,17 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
       unsigned char c;
       unsigned char esc;
       bool is_right_quote = false;
+      bool escaping = false;
 
       if (backslash_escapes
+          && quoting_style != shell_always_quoting_style
           && quote_string_len
-          && i + quote_string_len <= argsize
+          && (i + quote_string_len
+              <= (argsize == SIZE_MAX && 1 < quote_string_len
+                  /* Use strlen only if we must: when argsize is SIZE_MAX,
+                     and when the quote string is more than 1 byte long.
+                     If we do call strlen, save the result.  */
+                  ? (argsize = strlen (arg)) : argsize))
           && memcmp (arg + i, quote_string, quote_string_len) == 0)
         {
           if (elide_outer_quotes)
@@ -362,15 +411,15 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
         case '\0':
           if (backslash_escapes)
             {
-              if (elide_outer_quotes)
-                goto force_outer_quoting_style;
-              STORE ('\\');
+              START_ESC ();
               /* If quote_string were to begin with digits, we'd need to
                  test for the end of the arg as well.  However, it's
                  hard to imagine any locale that would use digits in
                  quotes, and set_custom_quoting is documented not to
-                 accept them.  */
-              if (i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9')
+                 accept them.  Use only a single \0 with shell-escape
+                 as currently digits are not printed within $'...'  */
+              if (quoting_style != shell_always_quoting_style
+                  && i + 1 < argsize && '0' <= arg[i + 1] && arg[i + 1] <= '9')
                 {
                   STORE ('0');
                   STORE ('0');
@@ -431,6 +480,14 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
         case '\t': esc = 't'; goto c_and_shell_escape;
         case '\v': esc = 'v'; goto c_escape;
         case '\\': esc = c;
+          /* Never need to escape '\' in shell case.  */
+          if (quoting_style == shell_always_quoting_style)
+            {
+              if (elide_outer_quotes)
+                goto force_outer_quoting_style;
+              goto store_c;
+            }
+
           /* No need to escape the escape if we are trying to elide
              outer quotes and nothing else is problematic.  */
           if (backslash_escapes && elide_outer_quotes && quote_string_len)
@@ -483,6 +540,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
               STORE ('\'');
               STORE ('\\');
               STORE ('\'');
+              pending_shell_escape_end = false;
             }
           break;
 
@@ -596,9 +654,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                   {
                     if (backslash_escapes && ! printable)
                       {
-                        if (elide_outer_quotes)
-                          goto force_outer_quoting_style;
-                        STORE ('\\');
+                        START_ESC ();
                         STORE ('0' + (c >> 6));
                         STORE ('0' + ((c >> 3) & 7));
                         c = '0' + (c & 7);
@@ -610,6 +666,7 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
                       }
                     if (ilim <= i + 1)
                       break;
+                    END_ESC ();
                     STORE (c);
                     c = arg[++i];
                   }
@@ -619,18 +676,18 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
           }
         }
 
-      if (! ((backslash_escapes || elide_outer_quotes)
+      if (! (((backslash_escapes && quoting_style != shell_always_quoting_style)
+              || elide_outer_quotes)
              && quote_these_too
-             && quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS)))
+             && quote_these_too[c / INT_BITS] >> (c % INT_BITS) & 1)
           && !is_right_quote)
         goto store_c;
 
     store_escape:
-      if (elide_outer_quotes)
-        goto force_outer_quoting_style;
-      STORE ('\\');
+      START_ESC ();
 
     store_c:
+      END_ESC ();
       STORE (c);
     }
 
@@ -649,6 +706,8 @@ quotearg_buffer_restyled (char *buffer, size_t buffersize,
  force_outer_quoting_style:
   /* Don't reuse quote_these_too, since the addition of outer quotes
      sufficiently quotes the specified characters.  */
+  if (quoting_style == shell_always_quoting_style && backslash_escapes)
+    quoting_style = shell_escape_always_quoting_style;
   return quotearg_buffer_restyled (buffer, buffersize, arg, argsize,
                                    quoting_style,
                                    flags & ~QA_ELIDE_OUTER_QUOTES, NULL,
@@ -896,6 +955,15 @@ quotearg_colon_mem (char const *arg, size_t argsize)
 }
 
 char *
+quotearg_n_style_colon (int n, enum quoting_style s, char const *arg)
+{
+  struct quoting_options options;
+  options = quoting_options_from_style (s);
+  set_char_quoting (&options, ':', 1);
+  return quotearg_n_options (n, arg, SIZE_MAX, &options);
+}
+
+char *
 quotearg_n_custom (int n, char const *left_quote,
                    char const *right_quote, char const *arg)
 {
index 58ee3f6..bc29052 100644 (file)
@@ -1,6 +1,6 @@
 /* quotearg.h - quote arguments for output
 
-   Copyright (C) 1998-2002, 2004, 2006, 2008-2013 Free Software Foundation,
+   Copyright (C) 1998-2002, 2004, 2006, 2008-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
@@ -73,6 +73,37 @@ enum quoting_style
     */
     shell_always_quoting_style,
 
+    /* Quote names for the shell if they contain shell metacharacters
+       or other problematic characters (ls --quoting-style=shell-escape).
+       Non printable characters are quoted using the $'...' syntax,
+       which originated in ksh93 and is widely supported by most shells,
+       and proposed for inclusion in POSIX.
+
+       quotearg_buffer:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
+       quotearg:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "a:b"
+       quotearg_colon:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\\'", "'a:b'"
+    */
+    shell_escape_quoting_style,
+
+    /* Quote names for the shell even if they would normally not
+       require quoting (ls --quoting-style=shell-escape).
+       Non printable characters are quoted using the $'...' syntax,
+       which originated in ksh93 and is widely supported by most shells,
+       and proposed for inclusion in POSIX.  Behaves like
+       shell_escape_quoting_style if QA_ELIDE_OUTER_QUOTES is in effect.
+
+       quotearg_buffer:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
+       quotearg:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "a:b"
+       quotearg_colon:
+       "simple", "''$'\\0'' '$'\\t\\n'\\''\"'$'\\033''??/\'", "'a:b'"
+    */
+    shell_escape_always_quoting_style,
+
     /* Quote names as for a C language string (ls --quoting-style=c).
        Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is
        in effect.  Split into consecutive strings if
@@ -247,7 +278,7 @@ struct quoting_options;
 struct quoting_options *clone_quoting_options (struct quoting_options *o);
 
 /* Get the value of O's quoting style.  If O is null, use the default.  */
-enum quoting_style get_quoting_style (struct quoting_options *o);
+enum quoting_style get_quoting_style (struct quoting_options const *o);
 
 /* In O (or in the default if O is null),
    set the value of the quoting style to S.  */
@@ -362,6 +393,9 @@ char *quotearg_colon (char const *arg);
 /* Like quotearg_colon (ARG), except it can quote null bytes.  */
 char *quotearg_colon_mem (char const *arg, size_t argsize);
 
+/* Like quotearg_n_style, except with ':' quoting enabled.  */
+char *quotearg_n_style_colon (int n, enum quoting_style s, char const *arg);
+
 /* Like quotearg_n_style (N, S, ARG) but with S as custom_quoting_style
    with left quote as LEFT_QUOTE and right quote as RIGHT_QUOTE.  See
    set_custom_quoting for a description of acceptable LEFT_QUOTE and
index 5b546d2..bf24c3e 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a non-threads replacement for the POSIX raise function.
 
-   Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2003, 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/lib/rawmemchr.c b/lib/rawmemchr.c
new file mode 100644 (file)
index 0000000..dbe01bd
--- /dev/null
@@ -0,0 +1,136 @@
+/* Searching in a string.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include <config.h>
+
+/* Specification.  */
+#include <string.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;
+
+  const unsigned char *char_ptr;
+  const longword *longword_ptr;
+  longword repeated_one;
+  longword repeated_c;
+  unsigned char c;
+
+  c = (unsigned char) 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;
+       ++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.  */
+
+  /* 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;
+            }
+        }
+    }
+
+  /* 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
+     c.  We first use an xor with repeated_c.  This reduces the task
+     to testing whether *any of the four* bytes in longword1 is zero.
+
+     We compute tmp =
+       ((longword1 - repeated_one) & ~longword1) & (repeated_one << 7).
+     That is, we perform the following operations:
+       1. Subtract repeated_one.
+       2. & ~longword1.
+       3. & a mask consisting of 0x80 in every byte.
+     Consider what happens in each byte:
+       - If a byte of longword1 is zero, step 1 and 2 transform it into 0xff,
+         and step 3 transforms it into 0x80.  A carry can also be propagated
+         to more significant bytes.
+       - If a byte of longword1 is nonzero, let its lowest 1 bit be at
+         position k (0 <= k <= 7); so the lowest k bits are 0.  After step 1,
+         the byte ends in a single bit of value 0 and k bits of value 1.
+         After step 2, the result is just k bits of value 1: 2^k - 1.  After
+         step 3, the result is 0.  And no carry is produced.
+     So, if longword1 has only non-zero bytes, tmp is zero.
+     Whereas if longword1 has a zero byte, call j the position of the least
+     significant zero byte.  Then the result has a zero at positions 0, ...,
+     j-1 and a 0x80 at position j.  We cannot predict the result at the more
+     significant bytes (positions j+1..3), but it does not matter since we
+     already have a non-zero bit at position 8*j+7.
+
+     The test whether any byte in longword1 is zero is equivalent
+     to testing whether tmp is nonzero.
+
+     This test can read beyond the end of a string, depending on where
+     C_IN is encountered.  However, this is considered safe since the
+     initialization phase ensured that the read will be aligned,
+     therefore, the read will not cross page boundaries and will not
+     cause a fault.  */
+
+  while (1)
+    {
+      longword longword1 = *longword_ptr ^ repeated_c;
+
+      if ((((longword1 - repeated_one) & ~longword1)
+           & (repeated_one << 7)) != 0)
+        break;
+      longword_ptr++;
+    }
+
+  char_ptr = (const unsigned char *) 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
+     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.  */
+
+  char_ptr = (unsigned char *) longword_ptr;
+  while (*char_ptr != c)
+    char_ptr++;
+  return (void *) char_ptr;
+}
diff --git a/lib/rawmemchr.valgrind b/lib/rawmemchr.valgrind
new file mode 100644 (file)
index 0000000..6363923
--- /dev/null
@@ -0,0 +1,12 @@
+# Suppress a valgrind message about use of uninitialized memory in rawmemchr().
+# This use is OK because it provides only a speedup.
+{
+    rawmemchr-value4
+    Memcheck:Value4
+    fun:rawmemchr
+}
+{
+    rawmemchr-value8
+    Memcheck:Value8
+    fun:rawmemchr
+}
index f83a1e0..e6c3925 100644 (file)
@@ -1,5 +1,5 @@
 /* Stub for readlink().
-   Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 112bcdc..42d3ab0 100644 (file)
@@ -1,6 +1,6 @@
 # Add this package to a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 2009-2016 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
index 6f73868..c77b33b 100644 (file)
@@ -1,6 +1,6 @@
 # Remove this package from a list of references stored in a text file.
 #
-#   Copyright (C) 2000, 2009-2013 Free Software Foundation, Inc.
+#   Copyright (C) 2000, 2009-2016 Free Software Foundation, Inc.
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
index f7cfebe..aaa66b9 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#ifdef _LIBC
+# include <locale/weight.h>
+#endif
+
 static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
                                          size_t length, reg_syntax_t syntax);
 static void re_compile_fastmap_iter (regex_t *bufp,
@@ -149,9 +153,9 @@ static const char __re_error_msgid[] =
     gettext_noop ("Invalid back reference") /* REG_ESUBREG */
     "\0"
 #define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference")
-    gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */
+    gettext_noop ("Unmatched [, [^, [:, [., or [=")    /* REG_EBRACK */
     "\0"
-#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [, [^, [:, [., or [=")
     gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
     "\0"
 #define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
@@ -209,17 +213,9 @@ static const size_t __re_error_msgid_idx[] =
    Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields
    are set in BUFP on entry.  */
 
-#ifdef _LIBC
-const char *
-re_compile_pattern (pattern, length, bufp)
-    const char *pattern;
-    size_t length;
-    struct re_pattern_buffer *bufp;
-#else /* size_t might promote */
 const char *
 re_compile_pattern (const char *pattern, size_t length,
                    struct re_pattern_buffer *bufp)
-#endif
 {
   reg_errcode_t ret;
 
@@ -257,8 +253,7 @@ reg_syntax_t re_syntax_options;
    defined in regex.h.  We return the old syntax.  */
 
 reg_syntax_t
-re_set_syntax (syntax)
-    reg_syntax_t syntax;
+re_set_syntax (reg_syntax_t syntax)
 {
   reg_syntax_t ret = re_syntax_options;
 
@@ -270,8 +265,7 @@ weak_alias (__re_set_syntax, re_set_syntax)
 #endif
 
 int
-re_compile_fastmap (bufp)
-    struct re_pattern_buffer *bufp;
+re_compile_fastmap (struct re_pattern_buffer *bufp)
 {
   re_dfa_t *dfa = bufp->buffer;
   char *fastmap = bufp->fastmap;
@@ -335,7 +329,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
              memset (&state, '\0', sizeof (state));
              if (__mbrtowc (&wc, (const char *) buf, p - buf,
                             &state) == p - buf
-                 && (__wcrtomb ((char *) buf, towlower (wc), &state)
+                 && (__wcrtomb ((char *) buf, __towlower (wc), &state)
                      != (size_t) -1))
                re_set_fastmap (fastmap, false, buf[0]);
            }
@@ -411,7 +405,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
                    re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
                  if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
                    {
-                     if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
+                     if (__wcrtomb (buf, __towlower (cset->mbchars[i]), &state)
                          != (size_t) -1)
                        re_set_fastmap (fastmap, false, *(unsigned char *) buf);
                    }
@@ -470,10 +464,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
    the return codes and their meanings.)  */
 
 int
-regcomp (preg, pattern, cflags)
-    regex_t *_Restrict_ preg;
-    const char *_Restrict_ pattern;
-    int cflags;
+regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags)
 {
   reg_errcode_t ret;
   reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
@@ -531,18 +522,9 @@ weak_alias (__regcomp, regcomp)
 /* Returns a message corresponding to an error code, ERRCODE, returned
    from either regcomp or regexec.   We don't use PREG here.  */
 
-#ifdef _LIBC
 size_t
-regerror (errcode, preg, errbuf, errbuf_size)
-    int errcode;
-    const regex_t *_Restrict_ preg;
-    char *_Restrict_ errbuf;
-    size_t errbuf_size;
-#else /* size_t might promote */
-size_t
-regerror (int errcode, const regex_t *_Restrict_ preg _UNUSED_PARAMETER_,
-         char *_Restrict_ errbuf, size_t errbuf_size)
-#endif
+regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf,
+         size_t errbuf_size)
 {
   const char *msg;
   size_t msg_size;
@@ -586,7 +568,7 @@ weak_alias (__regerror, regerror)
 static const bitset_t utf8_sb_map =
 {
   /* Set the first 128 bits.  */
-# ifdef __GNUC__
+# if defined __GNUC__ && !defined __STRICT_ANSI__
   [0 ... 0x80 / BITSET_WORD_BITS - 1] = BITSET_WORD_MAX
 # else
 #  if 4 * BITSET_WORD_BITS < ASCII_CHARS
@@ -658,12 +640,14 @@ free_dfa_content (re_dfa_t *dfa)
 /* Free dynamically allocated space used by PREG.  */
 
 void
-regfree (preg)
-    regex_t *preg;
+regfree (regex_t *preg)
 {
   re_dfa_t *dfa = preg->buffer;
   if (BE (dfa != NULL, 1))
-    free_dfa_content (dfa);
+    {
+      lock_fini (dfa->lock);
+      free_dfa_content (dfa);
+    }
   preg->buffer = NULL;
   preg->allocated = 0;
 
@@ -692,8 +676,7 @@ char *
    regcomp/regexec above without link errors.  */
 weak_function
 # endif
-re_comp (s)
-     const char *s;
+re_comp (const char *s)
 {
   reg_errcode_t ret;
   char *fastmap;
@@ -784,6 +767,8 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
   preg->used = sizeof (re_dfa_t);
 
   err = init_dfa (dfa, length);
+  if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0))
+    err = REG_ESPACE;
   if (BE (err != REG_NOERROR, 0))
     {
       free_dfa_content (dfa);
@@ -797,8 +782,6 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
   strncpy (dfa->re_str, pattern, length + 1);
 #endif
 
-  __libc_lock_init (dfa->lock);
-
   err = re_string_construct (&regexp, pattern, length, preg->translate,
                             (syntax & RE_ICASE) != 0, dfa);
   if (BE (err != REG_NOERROR, 0))
@@ -806,6 +789,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
     re_compile_internal_free_return:
       free_workarea_compile (preg);
       re_string_destruct (&regexp);
+      lock_fini (dfa->lock);
       free_dfa_content (dfa);
       preg->buffer = NULL;
       preg->allocated = 0;
@@ -838,6 +822,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length,
 
   if (BE (err != REG_NOERROR, 0))
     {
+      lock_fini (dfa->lock);
       free_dfa_content (dfa);
       preg->buffer = NULL;
       preg->allocated = 0;
@@ -1412,7 +1397,7 @@ calc_first (void *extra, bin_tree_t *node)
     {
       node->first = node;
       node->node_idx = re_dfa_add_node (dfa, node->token);
-      if (BE (node->node_idx == REG_MISSING, 0))
+      if (BE (node->node_idx == -1, 0))
        return REG_ESPACE;
       if (node->token.type == ANCHOR)
        dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
@@ -1422,7 +1407,7 @@ calc_first (void *extra, bin_tree_t *node)
 
 /* Pass 2: compute NEXT on the tree.  Preorder visit.  */
 static reg_errcode_t
-calc_next (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
+calc_next (void *extra, bin_tree_t *node)
 {
   switch (node->token.type)
     {
@@ -1473,8 +1458,8 @@ link_nfa_nodes (void *extra, bin_tree_t *node)
          right = node->right->first->node_idx;
        else
          right = node->next->node_idx;
-       assert (REG_VALID_INDEX (left));
-       assert (REG_VALID_INDEX (right));
+       assert (left > -1);
+       assert (right > -1);
        err = re_node_set_init_2 (dfa->edests + idx, left, right);
       }
       break;
@@ -1524,7 +1509,7 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
          org_dest = dfa->nexts[org_node];
          re_node_set_empty (dfa->edests + clone_node);
          clone_dest = duplicate_node (dfa, org_dest, constraint);
-         if (BE (clone_dest == REG_MISSING, 0))
+         if (BE (clone_dest == -1, 0))
            return REG_ESPACE;
          dfa->nexts[clone_node] = dfa->nexts[org_node];
          ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
@@ -1557,7 +1542,7 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
          /* In case the node has another constraint, append it.  */
          constraint |= dfa->nodes[org_node].constraint;
          clone_dest = duplicate_node (dfa, org_dest, constraint);
-         if (BE (clone_dest == REG_MISSING, 0))
+         if (BE (clone_dest == -1, 0))
            return REG_ESPACE;
          ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
          if (BE (! ok, 0))
@@ -1571,12 +1556,12 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
          re_node_set_empty (dfa->edests + clone_node);
          /* Search for a duplicated node which satisfies the constraint.  */
          clone_dest = search_duplicated_node (dfa, org_dest, constraint);
-         if (clone_dest == REG_MISSING)
+         if (clone_dest == -1)
            {
              /* There is no such duplicated node, create a new one.  */
              reg_errcode_t err;
              clone_dest = duplicate_node (dfa, org_dest, constraint);
-             if (BE (clone_dest == REG_MISSING, 0))
+             if (BE (clone_dest == -1, 0))
                return REG_ESPACE;
              ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
              if (BE (! ok, 0))
@@ -1597,7 +1582,7 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
 
          org_dest = dfa->edests[org_node].elems[1];
          clone_dest = duplicate_node (dfa, org_dest, constraint);
-         if (BE (clone_dest == REG_MISSING, 0))
+         if (BE (clone_dest == -1, 0))
            return REG_ESPACE;
          ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
          if (BE (! ok, 0))
@@ -1623,18 +1608,18 @@ search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
          && constraint == dfa->nodes[idx].constraint)
        return idx; /* Found.  */
     }
-  return REG_MISSING; /* Not found.  */
+  return -1; /* Not found.  */
 }
 
 /* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
-   Return the index of the new node, or REG_MISSING if insufficient storage is
+   Return the index of the new node, or -1 if insufficient storage is
    available.  */
 
 static Idx
 duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
 {
   Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
-  if (BE (dup_idx != REG_MISSING, 1))
+  if (BE (dup_idx != -1, 1))
     {
       dfa->nodes[dup_idx].constraint = constraint;
       dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
@@ -1693,7 +1678,7 @@ calc_eclosure (re_dfa_t *dfa)
        }
 
 #ifdef DEBUG
-      assert (dfa->eclosures[node_idx].nelem != REG_MISSING);
+      assert (dfa->eclosures[node_idx].nelem != -1);
 #endif
 
       /* If we have already calculated, skip it.  */
@@ -1729,7 +1714,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
 
   /* This indicates that we are calculating this node now.
      We reference this value to avoid infinite loop.  */
-  dfa->eclosures[node].nelem = REG_MISSING;
+  dfa->eclosures[node].nelem = -1;
 
   /* If the current node has constraints, duplicate all nodes
      since they must inherit the constraints.  */
@@ -1751,7 +1736,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
        Idx edest = dfa->edests[node].elems[i];
        /* If calculating the epsilon closure of 'edest' is in progress,
           return intermediate result.  */
-       if (dfa->eclosures[edest].nelem == REG_MISSING)
+       if (dfa->eclosures[edest].nelem == -1)
          {
            incomplete = true;
            continue;
@@ -2182,6 +2167,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
 {
   re_dfa_t *dfa = preg->buffer;
   bin_tree_t *tree, *branch = NULL;
+  bitset_word_t initial_bkref_map = dfa->completed_bkref_map;
   tree = parse_branch (regexp, preg, token, syntax, nest, err);
   if (BE (*err != REG_NOERROR && tree == NULL, 0))
     return NULL;
@@ -2192,9 +2178,16 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
       if (token->type != OP_ALT && token->type != END_OF_RE
          && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
        {
+         bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map;
+         dfa->completed_bkref_map = initial_bkref_map;
          branch = parse_branch (regexp, preg, token, syntax, nest, err);
          if (BE (*err != REG_NOERROR && branch == NULL, 0))
-           return NULL;
+           {
+             if (tree != NULL)
+               postorder (tree, free_tree, NULL);
+             return NULL;
+           }
+         dfa->completed_bkref_map |= accumulated_bkref_map;
        }
       else
        branch = NULL;
@@ -2455,14 +2448,22 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
   while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS
         || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM)
     {
-      tree = parse_dup_op (tree, regexp, dfa, token, syntax, err);
-      if (BE (*err != REG_NOERROR && tree == NULL, 0))
-       return NULL;
+      bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token,
+                                          syntax, err);
+      if (BE (*err != REG_NOERROR && dup_tree == NULL, 0))
+       {
+         if (tree != NULL)
+           postorder (tree, free_tree, NULL);
+         return NULL;
+       }
+      tree = dup_tree;
       /* In BRE consecutive duplications are not allowed.  */
       if ((syntax & RE_CONTEXT_INVALID_DUP)
          && (token->type == OP_DUP_ASTERISK
              || token->type == OP_OPEN_DUP_NUM))
        {
+         if (tree != NULL)
+           postorder (tree, free_tree, NULL);
          *err = REG_BADRPT;
          return NULL;
        }
@@ -2532,7 +2533,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
     {
       end = 0;
       start = fetch_number (regexp, token, syntax);
-      if (start == REG_MISSING)
+      if (start == -1)
        {
          if (token->type == CHARACTER && token->opr.c == ',')
            start = 0; /* We treat "{,m}" as "{0,m}".  */
@@ -2542,14 +2543,14 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
              return NULL;
            }
        }
-      if (BE (start != REG_ERROR, 1))
+      if (BE (start != -2, 1))
        {
          /* We treat "{n}" as "{n,n}".  */
          end = ((token->type == OP_CLOSE_DUP_NUM) ? start
                 : ((token->type == CHARACTER && token->opr.c == ',')
-                   ? fetch_number (regexp, token, syntax) : REG_ERROR));
+                   ? fetch_number (regexp, token, syntax) : -2));
        }
-      if (BE (start == REG_ERROR || end == REG_ERROR, 0))
+      if (BE (start == -2 || end == -2, 0))
        {
          /* Invalid sequence.  */
          if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
@@ -2571,7 +2572,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
          return elem;
        }
 
-      if (BE ((end != REG_MISSING && start > end)
+      if (BE ((end != -1 && start > end)
              || token->type != OP_CLOSE_DUP_NUM, 0))
        {
          /* First number greater than second.  */
@@ -2579,7 +2580,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
          return NULL;
        }
 
-      if (BE (RE_DUP_MAX < (end == REG_MISSING ? start : end), 0))
+      if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0))
        {
          *err = REG_ESIZE;
          return NULL;
@@ -2588,7 +2589,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
   else
     {
       start = (token->type == OP_DUP_PLUS) ? 1 : 0;
-      end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING;
+      end = (token->type == OP_DUP_QUESTION) ? 1 : -1;
     }
 
   fetch_token (token, regexp, syntax);
@@ -2618,6 +2619,8 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
 
       /* Duplicate ELEM before it is marked optional.  */
       elem = duplicate_tree (elem, dfa);
+      if (BE (elem == NULL, 0))
+        goto parse_dup_op_espace;
       old_tree = tree;
     }
   else
@@ -2630,7 +2633,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
     }
 
   tree = create_tree (dfa, elem, NULL,
-                     (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT));
+                     (end == -1 ? OP_DUP_ASTERISK : OP_ALT));
   if (BE (tree == NULL, 0))
     goto parse_dup_op_espace;
 
@@ -2638,10 +2641,10 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
    True if the arithmetic type T is signed.  */
 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
-  /* This loop is actually executed only when end != REG_MISSING,
+  /* This loop is actually executed only when end != -1,
      to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?...  We have
      already created the start+1-th copy.  */
-  if (TYPE_SIGNED (Idx) || end != REG_MISSING)
+  if (TYPE_SIGNED (Idx) || end != -1)
     for (i = start + 2; i <= end; ++i)
       {
        elem = duplicate_tree (elem, dfa);
@@ -2669,6 +2672,19 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
 #define BRACKET_NAME_BUF_SIZE 32
 
 #ifndef _LIBC
+
+# ifdef RE_ENABLE_I18N
+/* Convert the byte B to the corresponding wide character.  In a
+   unibyte locale, treat B as itself if it is an encoding error.
+   In a multibyte locale, return WEOF if B is an encoding error.  */
+static wint_t
+parse_byte (unsigned char b, re_charset_t *mbcset)
+{
+  wint_t wc = __btowc (b);
+  return wc == WEOF && !mbcset ? b : wc;
+}
+#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.
@@ -2720,9 +2736,9 @@ build_range_exp (const reg_syntax_t syntax,
              : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
                 : 0));
     start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
-               ? __btowc (start_ch) : start_elem->opr.wch);
+               ? parse_byte (start_ch, mbcset) : start_elem->opr.wch);
     end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
-             ? __btowc (end_ch) : end_elem->opr.wch);
+             ? parse_byte (end_ch, mbcset) : end_elem->opr.wch);
     if (start_wc == WEOF || end_wc == WEOF)
       return REG_ECOLLATE;
     else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0))
@@ -2752,7 +2768,11 @@ build_range_exp (const reg_syntax_t syntax,
                                        new_nranges);
 
            if (BE (new_array_start == NULL || new_array_end == NULL, 0))
-             return REG_ESPACE;
+             {
+               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;
@@ -2801,10 +2821,8 @@ build_range_exp (const reg_syntax_t syntax,
 static reg_errcode_t
 internal_function
 # ifdef RE_ENABLE_I18N
-build_collating_symbol (bitset_t sbcset,
-                       re_charset_t *mbcset _UNUSED_PARAMETER_,
-                       Idx *coll_sym_alloc _UNUSED_PARAMETER_,
-                       const unsigned char *name)
+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 */
@@ -3158,6 +3176,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       re_token_t token2;
 
       start_elem.opr.name = start_name_buf;
+      start_elem.type = COLL_SYM;
       ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
                                   syntax, first_round);
       if (BE (ret != REG_NOERROR, 0))
@@ -3201,6 +3220,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
       if (is_range_exp == true)
        {
          end_elem.opr.name = end_name_buf;
+         end_elem.type = COLL_SYM;
          ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
                                       dfa, syntax, true);
          if (BE (ret != REG_NOERROR, 0))
@@ -3372,8 +3392,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
 
 static reg_errcode_t
 parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
-                      re_token_t *token, int token_len,
-                      re_dfa_t *dfa _UNUSED_PARAMETER_,
+                      re_token_t *token, int token_len, re_dfa_t *dfa,
                       reg_syntax_t syntax, bool accept_hyphen)
 {
 #ifdef RE_ENABLE_I18N
@@ -3460,9 +3479,8 @@ parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
 
 static reg_errcode_t
 #ifdef RE_ENABLE_I18N
-build_equiv_class (bitset_t sbcset, re_charset_t *mbcset _UNUSED_PARAMETER_,
-                  Idx *equiv_class_alloc _UNUSED_PARAMETER_,
-                  const unsigned char *name)
+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 */
@@ -3477,8 +3495,6 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
       int32_t idx1, idx2;
       unsigned int ch;
       size_t len;
-      /* This #include defines a local function!  */
-# include <locale/weight.h>
       /* Calculate the index for equivalence class.  */
       cp = name;
       table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
@@ -3488,7 +3504,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
                                                   _NL_COLLATE_EXTRAMB);
       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
                                                _NL_COLLATE_INDIRECTMB);
-      idx1 = findidx (&cp, -1);
+      idx1 = findidx (table, indirect, extra, &cp, -1);
       if (BE (idx1 == 0 || *cp != '\0', 0))
        /* This isn't a valid character.  */
        return REG_ECOLLATE;
@@ -3499,7 +3515,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
        {
          char_buf[0] = ch;
          cp = char_buf;
-         idx2 = findidx (&cp, 1);
+         idx2 = findidx (table, indirect, extra, &cp, 1);
 /*
          idx2 = table[ch];
 */
@@ -3653,26 +3669,21 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
   bin_tree_t *tree;
 
   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 (BE (sbcset == NULL || mbcset == NULL, 0))
-#else /* not RE_ENABLE_I18N */
   if (BE (sbcset == NULL, 0))
-#endif /* not RE_ENABLE_I18N */
     {
       *err = REG_ESPACE;
       return NULL;
     }
-
-  if (non_match)
-    {
 #ifdef RE_ENABLE_I18N
-      mbcset->non_match = 1;
-#endif /* not RE_ENABLE_I18N */
+  mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+  if (BE (mbcset == NULL, 0))
+    {
+      re_free (sbcset);
+      *err = REG_ESPACE;
+      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,
@@ -3705,6 +3716,9 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
 #endif
 
   /* Build a tree for simple bracket.  */
+#if defined GCC_LINT || defined lint
+  memset (&br_token, 0, sizeof br_token);
+#endif
   br_token.type = SIMPLE_BRACKET;
   br_token.opr.sbcset = sbcset;
   tree = create_token_tree (dfa, NULL, NULL, &br_token);
@@ -3747,27 +3761,26 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
 
 /* This is intended for the expressions like "a{1,3}".
    Fetch a number from 'input', and return the number.
-   Return REG_MISSING if the number field is empty like "{,1}".
+   Return -1 if the number field is empty like "{,1}".
    Return RE_DUP_MAX + 1 if the number field is too large.
-   Return REG_ERROR if an error occurred.  */
+   Return -2 if an error occurred.  */
 
 static Idx
 fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
 {
-  Idx num = REG_MISSING;
+  Idx num = -1;
   unsigned char c;
   while (1)
     {
       fetch_token (token, input, syntax);
       c = token->opr.c;
       if (BE (token->type == END_OF_RE, 0))
-       return REG_ERROR;
+       return -2;
       if (token->type == OP_CLOSE_DUP_NUM || c == ',')
        break;
-      num = ((token->type != CHARACTER || c < '0' || '9' < c
-             || num == REG_ERROR)
-            ? REG_ERROR
-            : num == REG_MISSING
+      num = ((token->type != CHARACTER || c < '0' || '9' < c || num == -2)
+            ? -2
+            : num == -1
             ? c - '0'
             : MIN (RE_DUP_MAX + 1, num * 10 + c - '0'));
     }
@@ -3799,6 +3812,9 @@ create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
             re_token_type_t type)
 {
   re_token_t t;
+#if defined GCC_LINT || defined lint
+  memset (&t, 0, sizeof t);
+#endif
   t.type = type;
   return create_token_tree (dfa, left, right, &t);
 }
@@ -3828,7 +3844,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
   tree->token.opt_subexp = 0;
   tree->first = NULL;
   tree->next = NULL;
-  tree->node_idx = REG_MISSING;
+  tree->node_idx = -1;
 
   if (left != NULL)
     left->parent = tree;
@@ -3868,7 +3884,7 @@ free_token (re_token_t *node)
    and its children. */
 
 static reg_errcode_t
-free_tree (void *extra _UNUSED_PARAMETER_, bin_tree_t *node)
+free_tree (void *extra, bin_tree_t *node)
 {
   free_token (&node->token);
   return REG_NOERROR;
index 5a0332e..432b465 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
index 854c6ed..31f4e4d 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for data structures and routines for the regular
    expression library.
-   Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2013 Free Software
+   Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2016 Free Software
    Foundation, Inc.
    This file is part of the GNU C Library.
 
@@ -42,11 +42,6 @@ extern "C" {
    supported within glibc itself, and glibc users should not define
    _REGEX_LARGE_OFFSETS.  */
 
-/* The type of nonnegative object indexes.  Traditionally, GNU regex
-   uses 'int' for these.  Code that uses __re_idx_t should work
-   regardless of whether the type is signed.  */
-typedef size_t __re_idx_t;
-
 /* The type of object sizes.  */
 typedef size_t __re_size_t;
 
@@ -58,7 +53,6 @@ typedef size_t __re_long_size_t;
 
 /* The traditional GNU regex implementation mishandles strings longer
    than INT_MAX.  */
-typedef int __re_idx_t;
 typedef unsigned int __re_size_t;
 typedef unsigned long int __re_long_size_t;
 
@@ -244,19 +238,16 @@ extern reg_syntax_t re_syntax_options;
    | RE_INVALID_INTERVAL_ORD)
 
 # define RE_SYNTAX_GREP                                                        \
-  (RE_BK_PLUS_QM              | RE_CHAR_CLASSES                                \
-   | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS                           \
-   | RE_NEWLINE_ALT)
+  ((RE_SYNTAX_POSIX_BASIC | RE_NEWLINE_ALT)                            \
+   & ~(RE_CONTEXT_INVALID_DUP | RE_DOT_NOT_NULL))
 
 # define RE_SYNTAX_EGREP                                               \
-  (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS                   \
-   | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE                   \
-   | RE_NEWLINE_ALT       | RE_NO_BK_PARENS                            \
-   | RE_NO_BK_VBAR)
+  ((RE_SYNTAX_POSIX_EXTENDED | RE_INVALID_INTERVAL_ORD | RE_NEWLINE_ALT) \
+   & ~(RE_CONTEXT_INVALID_OPS | RE_DOT_NOT_NULL))
 
+/* POSIX grep -E behavior is no longer incompatible with GNU.  */
 # define RE_SYNTAX_POSIX_EGREP                                         \
-  (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES                    \
-   | RE_INVALID_INTERVAL_ORD)
+  RE_SYNTAX_EGREP
 
 /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
 # define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
@@ -491,7 +482,8 @@ typedef struct re_pattern_buffer regex_t;
 #ifdef _REGEX_LARGE_OFFSETS
 /* POSIX 1003.1-2008 requires that regoff_t be at least as wide as
    ptrdiff_t and ssize_t.  We don't know of any hosts where ptrdiff_t
-   is wider than ssize_t, so ssize_t is safe.  */
+   is wider than ssize_t, so ssize_t is safe.  ptrdiff_t is not
+   visible here, so use ssize_t.  */
 typedef ssize_t regoff_t;
 #else
 /* The traditional GNU regex implementation mishandles strings longer
@@ -541,7 +533,7 @@ extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
    BUFFER.  Return NULL if successful, and an error string if not.
 
    To free the allocated storage, you must call 'regfree' on BUFFER.
-   Note that the translate table must either have been initialised by
+   Note that the translate table must either have been initialized by
    '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,
@@ -560,34 +552,34 @@ extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
    match, or -2 for an internal error.  Also return register
    information in REGS (if REGS and BUFFER->no_sub are nonzero).  */
 extern regoff_t re_search (struct re_pattern_buffer *__buffer,
-                          const char *__string, __re_idx_t __length,
-                          __re_idx_t __start, regoff_t __range,
+                          const char *__string, regoff_t __length,
+                          regoff_t __start, regoff_t __range,
                           struct re_registers *__regs);
 
 
 /* Like 're_search', but search in the concatenation of STRING1 and
    STRING2.  Also, stop searching at index START + STOP.  */
 extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
-                            const char *__string1, __re_idx_t __length1,
-                            const char *__string2, __re_idx_t __length2,
-                            __re_idx_t __start, regoff_t __range,
+                            const char *__string1, regoff_t __length1,
+                            const char *__string2, regoff_t __length2,
+                            regoff_t __start, regoff_t __range,
                             struct re_registers *__regs,
-                            __re_idx_t __stop);
+                            regoff_t __stop);
 
 
 /* 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, __re_idx_t __length,
-                         __re_idx_t __start, struct re_registers *__regs);
+                         const char *__string, regoff_t __length,
+                         regoff_t __start, struct re_registers *__regs);
 
 
 /* Relates to 're_match' as 're_search_2' relates to 're_search'.  */
 extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
-                           const char *__string1, __re_idx_t __length1,
-                           const char *__string2, __re_idx_t __length2,
-                           __re_idx_t __start, struct re_registers *__regs,
-                           __re_idx_t __stop);
+                           const char *__string1, regoff_t __length1,
+                           const char *__string2, regoff_t __length2,
+                           regoff_t __start, struct re_registers *__regs,
+                           regoff_t __stop);
 
 
 /* Set REGS to hold NUM_REGS registers, storing them in STARTS and
@@ -608,7 +600,7 @@ extern void re_set_registers (struct re_pattern_buffer *__buffer,
                              regoff_t *__starts, regoff_t *__ends);
 #endif /* Use GNU */
 
-#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD)
+#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_MISC)
 # ifndef _CRAY
 /* 4.2 bsd compatibility.  */
 extern char *re_comp (const char *);
index 649b2b3..a3b10dd 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -17,8 +17,6 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include "verify.h"
-#include "intprops.h"
 static void re_string_construct_common (const char *str, Idx len,
                                        re_string_t *pstr,
                                        RE_TRANSLATE_TYPE trans, bool icase,
@@ -313,13 +311,12 @@ build_wcs_upper_buffer (re_string_t *pstr)
                               + byte_idx), remain_len, &pstr->cur_state);
          if (BE (mbclen < (size_t) -2, 1))
            {
-             wchar_t wcu = wc;
-             if (iswlower (wc))
+             wchar_t wcu = __towupper (wc);
+             if (wcu != wc)
                {
                  size_t mbcdlen;
 
-                 wcu = towupper (wc);
-                 mbcdlen = wcrtomb (buf, wcu, &prev_st);
+                 mbcdlen = __wcrtomb (buf, wcu, &prev_st);
                  if (BE (mbclen == mbcdlen, 1))
                    memcpy (pstr->mbs + byte_idx, buf, mbclen);
                  else
@@ -383,12 +380,11 @@ build_wcs_upper_buffer (re_string_t *pstr)
        mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
        if (BE (mbclen < (size_t) -2, 1))
          {
-           wchar_t wcu = wc;
-           if (iswlower (wc))
+           wchar_t wcu = __towupper (wc);
+           if (wcu != wc)
              {
                size_t mbcdlen;
 
-               wcu = towupper (wc);
                mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
                if (BE (mbclen == mbcdlen, 1))
                  memcpy (pstr->mbs + byte_idx, buf, mbclen);
@@ -540,10 +536,7 @@ build_upper_buffer (re_string_t *pstr)
       int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
       if (BE (pstr->trans != NULL, 0))
        ch = pstr->trans[ch];
-      if (islower (ch))
-       pstr->mbs[char_idx] = toupper (ch);
-      else
-       pstr->mbs[char_idx] = ch;
+      pstr->mbs[char_idx] = toupper (ch);
     }
   pstr->valid_len = char_idx;
   pstr->valid_raw_len = char_idx;
@@ -684,7 +677,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
                         pstr->valid_len - offset);
              pstr->valid_len -= offset;
              pstr->valid_raw_len -= offset;
-#if DEBUG
+#if defined DEBUG && DEBUG
              assert (pstr->valid_len > 0);
 #endif
            }
@@ -929,7 +922,7 @@ internal_function
 re_string_context_at (const re_string_t *input, Idx idx, int eflags)
 {
   int c;
-  if (BE (! REG_VALID_INDEX (idx), 0))
+  if (BE (idx < 0, 0))
     /* In this case, we use the value stored in input->tip_context,
        since we can't know the character in input->mbs[-1] here.  */
     return input->tip_context;
@@ -943,12 +936,12 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags)
       Idx wc_idx = idx;
       while(input->wcs[wc_idx] == WEOF)
        {
-#ifdef DEBUG
+#if defined DEBUG && DEBUG
          /* It must not happen.  */
-         assert (REG_VALID_INDEX (wc_idx));
+         assert (wc_idx >= 0);
 #endif
          --wc_idx;
-         if (! REG_VALID_INDEX (wc_idx))
+         if (wc_idx < 0)
            return input->tip_context;
        }
       wc = input->wcs[wc_idx];
@@ -1084,25 +1077,25 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
       if (src1->elems[i1] == src2->elems[i2])
        {
          /* Try to find the item in DEST.  Maybe we could binary search?  */
-         while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1])
+         while (id >= 0 && dest->elems[id] > src1->elems[i1])
            --id;
 
-          if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1])
+         if (id < 0 || dest->elems[id] != src1->elems[i1])
             dest->elems[--sbase] = src1->elems[i1];
 
-         if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2))
+         if (--i1 < 0 || --i2 < 0)
            break;
        }
 
       /* Lower the highest of the two items.  */
       else if (src1->elems[i1] < src2->elems[i2])
        {
-         if (! REG_VALID_INDEX (--i2))
+         if (--i2 < 0)
            break;
        }
       else
        {
-         if (! REG_VALID_INDEX (--i1))
+         if (--i1 < 0)
            break;
        }
     }
@@ -1115,7 +1108,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
      DEST elements are already in place; this is more or
      less the same loop that is in re_node_set_merge.  */
   dest->nelem += delta;
-  if (delta > 0 && REG_VALID_INDEX (id))
+  if (delta > 0 && id >= 0)
     for (;;)
       {
        if (dest->elems[is] > dest->elems[id])
@@ -1129,7 +1122,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1,
          {
            /* Slide from the bottom.  */
            dest->elems[id + delta] = dest->elems[id];
-           if (! REG_VALID_INDEX (--id))
+           if (--id < 0)
              break;
          }
       }
@@ -1223,8 +1216,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src)
   /* Copy into the top of DEST the items of SRC that are not
      found in DEST.  Maybe we could binary search in DEST?  */
   for (sbase = dest->nelem + 2 * src->nelem,
-       is = src->nelem - 1, id = dest->nelem - 1;
-       REG_VALID_INDEX (is) && REG_VALID_INDEX (id); )
+       is = src->nelem - 1, id = dest->nelem - 1; is >= 0 && id >= 0; )
     {
       if (dest->elems[id] == src->elems[is])
        is--, id--;
@@ -1234,7 +1226,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src)
        --id;
     }
 
-  if (REG_VALID_INDEX (is))
+  if (is >= 0)
     {
       /* If DEST is exhausted, the remaining items of SRC must be unique.  */
       sbase -= is + 1;
@@ -1263,7 +1255,7 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src)
        {
          /* Slide from the bottom.  */
          dest->elems[id + delta] = dest->elems[id];
-         if (! REG_VALID_INDEX (--id))
+         if (--id < 0)
            {
              /* Copy remaining SRC elements.  */
              memcpy (dest->elems, dest->elems + sbase,
@@ -1362,7 +1354,7 @@ re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
   Idx i;
   if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem)
     return false;
-  for (i = set1->nelem ; REG_VALID_INDEX (--i) ; )
+  for (i = set1->nelem ; --i >= 0 ; )
     if (set1->elems[i] != set2->elems[i])
       return false;
   return true;
@@ -1375,7 +1367,7 @@ internal_function __attribute__ ((pure))
 re_node_set_contains (const re_node_set *set, Idx elem)
 {
   __re_size_t idx, right, mid;
-  if (! REG_VALID_NONZERO_INDEX (set->nelem))
+  if (set->nelem <= 0)
     return 0;
 
   /* Binary search the element.  */
@@ -1396,10 +1388,7 @@ static void
 internal_function
 re_node_set_remove_at (re_node_set *set, Idx idx)
 {
-  verify (! TYPE_SIGNED (Idx));
-  /* if (idx < 0)
-     return; */
-  if (idx >= set->nelem)
+  if (idx < 0 || idx >= set->nelem)
     return;
   --set->nelem;
   for (; idx < set->nelem; idx++)
@@ -1408,7 +1397,7 @@ re_node_set_remove_at (re_node_set *set, Idx idx)
 \f
 
 /* Add the token TOKEN to dfa->nodes, and return the index of the token.
-   Or return REG_MISSING if an error occurred.  */
+   Or return -1 if an error occurred.  */
 
 static Idx
 internal_function
@@ -1426,11 +1415,11 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
                                          MAX (sizeof (re_node_set),
                                               sizeof (Idx)));
       if (BE (MIN (IDX_MAX, SIZE_MAX / max_object_size) < new_nodes_alloc, 0))
-       return REG_MISSING;
+       return -1;
 
       new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
       if (BE (new_nodes == NULL, 0))
-       return REG_MISSING;
+       return -1;
       dfa->nodes = new_nodes;
       new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
       new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
@@ -1438,7 +1427,13 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
       new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
       if (BE (new_nexts == NULL || new_indices == NULL
              || new_edests == NULL || new_eclosures == NULL, 0))
-       return REG_MISSING;
+       {
+          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;
@@ -1452,7 +1447,7 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
     ((token.type == OP_PERIOD && dfa->mb_cur_max > 1)
      || token.type == COMPLEX_BRACKET);
 #endif
-  dfa->nexts[dfa->nodes_len] = REG_MISSING;
+  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);
   return dfa->nodes_len++;
@@ -1487,7 +1482,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
   re_dfastate_t *new_state;
   struct re_state_table_entry *spot;
   Idx i;
-#ifdef lint
+#if defined GCC_LINT || defined lint
   /* Suppress bogus uninitialized-variable warnings.  */
   *err = REG_NOERROR;
 #endif
@@ -1535,7 +1530,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa,
   re_dfastate_t *new_state;
   struct re_state_table_entry *spot;
   Idx i;
-#ifdef lint
+#if defined GCC_LINT || defined lint
   /* Suppress bogus uninitialized-variable warnings.  */
   *err = REG_NOERROR;
 #endif
index c467b29..ec074be 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
 #include <wctype.h>
 #include <stdbool.h>
 #include <stdint.h>
-#if defined _LIBC
-# include <bits/libc-lock.h>
+
+#ifdef _LIBC
+# include <libc-lock.h>
+# define lock_define(name) __libc_lock_define (, name)
+# define lock_init(lock) (__libc_lock_init (lock), 0)
+# define lock_fini(lock) 0
+# define lock_lock(lock) __libc_lock_lock (lock)
+# define lock_unlock(lock) __libc_lock_unlock (lock)
+#elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO
+# include "glthread/lock.h"
+  /* Use gl_lock_define if empty macro arguments are known to work.
+     Otherwise, fall back on less-portable substitutes.  */
+# if ((defined __GNUC__ && !defined __STRICT_ANSI__) \
+      || (defined __STDC_VERSION__ && 199901L <= __STDC_VERSION__))
+#  define lock_define(name) gl_lock_define (, name)
+# elif USE_POSIX_THREADS
+#  define lock_define(name) pthread_mutex_t name;
+# elif USE_PTH_THREADS
+#  define lock_define(name) pth_mutex_t name;
+# elif USE_SOLARIS_THREADS
+#  define lock_define(name) mutex_t name;
+# elif USE_WINDOWS_THREADS
+#  define lock_define(name) gl_lock_t name;
+# else
+#  define lock_define(name)
+# endif
+# define lock_init(lock) glthread_lock_init (&(lock))
+# define lock_fini(lock) glthread_lock_destroy (&(lock))
+# define lock_lock(lock) glthread_lock_lock (&(lock))
+# define lock_unlock(lock) glthread_lock_unlock (&(lock))
+#elif defined GNULIB_PTHREAD && !defined USE_UNLOCKED_IO
+# include <pthread.h>
+# define lock_define(name) pthread_mutex_t name;
+# define lock_init(lock) pthread_mutex_init (&(lock), 0)
+# define lock_fini(lock) pthread_mutex_destroy (&(lock))
+# define lock_lock(lock) pthread_mutex_lock (&(lock))
+# define lock_unlock(lock) pthread_mutex_unlock (&(lock))
 #else
-# define __libc_lock_init(NAME) do { } while (0)
-# define __libc_lock_lock(NAME) do { } while (0)
-# define __libc_lock_unlock(NAME) do { } while (0)
+# define lock_define(name)
+# define lock_init(lock) 0
+# define lock_fini(lock) ((void) 0)
+  /* The 'dfa' avoids an "unused variable 'dfa'" warning from GCC.  */
+# define lock_lock(lock) ((void) dfa)
+# define lock_unlock(lock) ((void) 0)
 #endif
 
 /* In case that the system doesn't have isblank().  */
@@ -49,7 +87,6 @@
 # ifndef _RE_DEFINE_LOCALE_FUNCTIONS
 #  define _RE_DEFINE_LOCALE_FUNCTIONS 1
 #   include <locale/localeinfo.h>
-#   include <locale/elem-hash.h>
 #   include <locale/coll-lookup.h>
 # endif
 #endif
 # define gettext_noop(String) String
 #endif
 
-#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC
+#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE) || _LIBC
 # define RE_ENABLE_I18N
 #endif
 
 # undef __wctype
 # undef __iswctype
 # define __wctype wctype
+# define __iswalnum iswalnum
 # define __iswctype iswctype
+# define __towlower towlower
+# define __towupper towupper
 # define __btowc btowc
 # define __mbrtowc mbrtowc
 # define __wcrtomb wcrtomb
 # define __attribute__(arg)
 #endif
 
-typedef __re_idx_t Idx;
-#ifdef _REGEX_LARGE_OFFSETS
-# define IDX_MAX (SIZE_MAX - 2)
-#else
-# define IDX_MAX INT_MAX
-#endif
-
-/* Special return value for failure to match.  */
-#define REG_MISSING ((Idx) -1)
-
-/* Special return value for internal error.  */
-#define REG_ERROR ((Idx) -2)
-
-/* Test whether N is a valid index, and is not one of the above.  */
-#ifdef _REGEX_LARGE_OFFSETS
-# define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR)
-#else
-# define REG_VALID_INDEX(n) (0 <= (n))
+#ifndef SSIZE_MAX
+# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
 #endif
 
-/* Test whether N is a valid nonzero index.  */
+/* The type of indexes into strings.  This is signed, not size_t,
+   since the API requires indexes to fit in regoff_t anyway, and using
+   signed integers makes the code a bit smaller and presumably faster.
+   The traditional GNU regex implementation uses int for indexes.
+   The POSIX-compatible implementation uses a possibly-wider type.
+   The name 'Idx' is three letters to minimize the hassle of
+   reindenting a lot of regex code that formerly used 'int'.  */
+typedef regoff_t Idx;
 #ifdef _REGEX_LARGE_OFFSETS
-# define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1))
+# define IDX_MAX SSIZE_MAX
 #else
-# define REG_VALID_NONZERO_INDEX(n) (0 < (n))
+# define IDX_MAX INT_MAX
 #endif
 
 /* A hash value, suitable for computing hash tables.  */
@@ -409,23 +440,23 @@ typedef struct re_dfa_t re_dfa_t;
 
 #ifndef _LIBC
 # define internal_function
+# define IS_IN(libc) false
 #endif
 
-#ifndef NOT_IN_libc
 static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
                                                Idx new_buf_len)
      internal_function;
-# ifdef RE_ENABLE_I18N
+#ifdef RE_ENABLE_I18N
 static void build_wcs_buffer (re_string_t *pstr) internal_function;
 static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
   internal_function;
-# endif /* RE_ENABLE_I18N */
+#endif /* RE_ENABLE_I18N */
 static void build_upper_buffer (re_string_t *pstr) internal_function;
 static void re_string_translate_buffer (re_string_t *pstr) internal_function;
 static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
                                          int eflags)
      internal_function __attribute__ ((pure));
-#endif
+
 #define re_string_peek_byte(pstr, offset) \
   ((pstr)->mbs[(pstr)->cur_idx + offset])
 #define re_string_fetch_byte(pstr) \
@@ -518,7 +549,7 @@ typedef struct bin_tree_storage_t bin_tree_storage_t;
 
 #define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_')
 #define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR)
-#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_')
+#define IS_WIDE_WORD_CHAR(ch) (__iswalnum (ch) || (ch) == L'_')
 #define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR)
 
 #define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \
@@ -698,9 +729,7 @@ struct re_dfa_t
 #ifdef DEBUG
   char* re_str;
 #endif
-#ifdef _LIBC
-  __libc_lock_define (, lock)
-#endif
+  lock_define (lock)
 };
 
 #define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
@@ -824,15 +853,17 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx)
   return (wint_t) pstr->wcs[idx];
 }
 
-# ifndef NOT_IN_libc
+# ifdef _LIBC
+#  include <locale/weight.h>
+# endif
+
 static int
 internal_function __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;
-#   include <locale/weight.h>
   uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
 
   if (nrules != 0)
@@ -843,14 +874,13 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx)
       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
                                                _NL_COLLATE_INDIRECTMB);
       p = pstr->mbs + idx;
-      findidx (&p, pstr->len - idx);
+      findidx (table, indirect, extra, &p, pstr->len - idx);
       return p - pstr->mbs - idx;
     }
   else
-#  endif /* _LIBC */
+# endif /* _LIBC */
     return 1;
 }
-# endif
 #endif /* RE_ENABLE_I18N */
 
 #ifndef __GNUC_PREREQ
index 94644de..fd10911 100644 (file)
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
 
@@ -17,8 +17,6 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#include "verify.h"
-#include "intprops.h"
 static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
                                     Idx n) internal_function;
 static void match_ctx_clean (re_match_context_t *mctx) internal_function;
@@ -221,18 +219,12 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len)
    We return 0 if we find a match and REG_NOMATCH if not.  */
 
 int
-regexec (preg, string, nmatch, pmatch, eflags)
-    const regex_t *_Restrict_ preg;
-    const char *_Restrict_ string;
-    size_t nmatch;
-    regmatch_t pmatch[_Restrict_arr_];
-    int eflags;
+regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string,
+        size_t nmatch, regmatch_t pmatch[], int eflags)
 {
   reg_errcode_t err;
   Idx start, length;
-#ifdef _LIBC
   re_dfa_t *dfa = preg->buffer;
-#endif
 
   if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
     return REG_BADPAT;
@@ -248,14 +240,14 @@ regexec (preg, string, nmatch, pmatch, eflags)
       length = strlen (string);
     }
 
-  __libc_lock_lock (dfa->lock);
+  lock_lock (dfa->lock);
   if (preg->no_sub)
     err = re_search_internal (preg, string, length, start, length,
                              length, 0, NULL, eflags);
   else
     err = re_search_internal (preg, string, length, start, length,
                              length, nmatch, pmatch, eflags);
-  __libc_lock_unlock (dfa->lock);
+  lock_unlock (dfa->lock);
   return err != REG_NOERROR;
 }
 
@@ -309,11 +301,8 @@ compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
    match was found and -2 indicates an internal error.  */
 
 regoff_t
-re_match (bufp, string, length, start, regs)
-    struct re_pattern_buffer *bufp;
-    const char *string;
-    Idx length, start;
-    struct re_registers *regs;
+re_match (struct re_pattern_buffer *bufp, const char *string, Idx length,
+         Idx start, struct re_registers *regs)
 {
   return re_search_stub (bufp, string, length, start, 0, length, regs, true);
 }
@@ -322,12 +311,8 @@ weak_alias (__re_match, re_match)
 #endif
 
 regoff_t
-re_search (bufp, string, length, start, range, regs)
-    struct re_pattern_buffer *bufp;
-    const char *string;
-    Idx length, start;
-    regoff_t range;
-    struct re_registers *regs;
+re_search (struct re_pattern_buffer *bufp, const char *string, Idx length,
+          Idx start, regoff_t range, struct re_registers *regs)
 {
   return re_search_stub (bufp, string, length, start, range, length, regs,
                         false);
@@ -337,11 +322,9 @@ weak_alias (__re_search, re_search)
 #endif
 
 regoff_t
-re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
-    struct re_pattern_buffer *bufp;
-    const char *string1, *string2;
-    Idx length1, length2, start, stop;
-    struct re_registers *regs;
+re_match_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1,
+           const char *string2, Idx length2, Idx start,
+           struct re_registers *regs, Idx stop)
 {
   return re_search_2_stub (bufp, string1, length1, string2, length2,
                           start, 0, regs, stop, true);
@@ -351,12 +334,9 @@ weak_alias (__re_match_2, re_match_2)
 #endif
 
 regoff_t
-re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
-    struct re_pattern_buffer *bufp;
-    const char *string1, *string2;
-    Idx length1, length2, start, stop;
-    regoff_t range;
-    struct re_registers *regs;
+re_search_2 (struct re_pattern_buffer *bufp, const char *string1, Idx length1,
+            const char *string2, Idx length2, Idx start, regoff_t range,
+            struct re_registers *regs, Idx stop)
 {
   return re_search_2_stub (bufp, string1, length1, string2, length2,
                           start, range, regs, stop, false);
@@ -366,10 +346,10 @@ weak_alias (__re_search_2, re_search_2)
 #endif
 
 static regoff_t
-re_search_2_stub (struct re_pattern_buffer *bufp,
-                 const char *string1, Idx length1,
-                 const char *string2, Idx length2,
-                 Idx start, regoff_t range, struct re_registers *regs,
+internal_function
+re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1,
+                 Idx length1, const char *string2, Idx length2, Idx start,
+                 regoff_t range, struct re_registers *regs,
                  Idx stop, bool ret_len)
 {
   const char *str;
@@ -377,11 +357,8 @@ re_search_2_stub (struct re_pattern_buffer *bufp,
   Idx len = length1 + length2;
   char *s = NULL;
 
-  verify (! TYPE_SIGNED (Idx));
-  if (BE (len < length1, 0))
-     return -2;
-  /* if (BE (length1 < 0 || length2 < 0 || stop < 0, 0))
-     return -2; */
+  if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
+    return -2;
 
   /* Concatenate the strings.  */
   if (length2 > 0)
@@ -416,8 +393,8 @@ re_search_2_stub (struct re_pattern_buffer *bufp,
    otherwise the position of the match is returned.  */
 
 static regoff_t
-re_search_stub (struct re_pattern_buffer *bufp,
-               const char *string, Idx length,
+internal_function
+re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length,
                Idx start, regoff_t range, Idx stop, struct re_registers *regs,
                bool ret_len)
 {
@@ -426,23 +403,18 @@ re_search_stub (struct re_pattern_buffer *bufp,
   Idx nregs;
   regoff_t rval;
   int eflags = 0;
-#ifdef _LIBC
   re_dfa_t *dfa = bufp->buffer;
-#endif
   Idx last_start = start + range;
 
   /* Check for out-of-range.  */
-  verify (! TYPE_SIGNED (Idx));
-  /* if (BE (start < 0, 0))
-     return -1; */
-  if (BE (start > length, 0))
-     return -1;
+  if (BE (start < 0 || start > length, 0))
+    return -1;
   if (BE (length < last_start || (0 <= range && last_start < start), 0))
     last_start = length;
-  else if (BE (/* last_start < 0 || */ (range < 0 && start <= last_start), 0))
+  else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
     last_start = 0;
 
-  __libc_lock_lock (dfa->lock);
+  lock_lock (dfa->lock);
 
   eflags |= (bufp->not_bol) ? REG_NOTBOL : 0;
   eflags |= (bufp->not_eol) ? REG_NOTEOL : 0;
@@ -506,11 +478,12 @@ re_search_stub (struct re_pattern_buffer *bufp,
     }
   re_free (pmatch);
  out:
-  __libc_lock_unlock (dfa->lock);
+  lock_unlock (dfa->lock);
   return rval;
 }
 
 static unsigned
+internal_function
 re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
              int regs_allocated)
 {
@@ -589,11 +562,8 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
    freeing the old data.  */
 
 void
-re_set_registers (bufp, regs, num_regs, starts, ends)
-    struct re_pattern_buffer *bufp;
-    struct re_registers *regs;
-    __re_size_t num_regs;
-    regoff_t *starts, *ends;
+re_set_registers (struct re_pattern_buffer *bufp, struct re_registers *regs,
+                 __re_size_t num_regs, regoff_t *starts, regoff_t *ends)
 {
   if (num_regs)
     {
@@ -621,8 +591,7 @@ int
 # ifdef _LIBC
 weak_function
 # endif
-re_exec (s)
-     const char *s;
+re_exec (const char *s)
 {
   return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
 }
@@ -640,12 +609,10 @@ re_exec (s)
    (0 <= LAST_START && LAST_START <= LENGTH)  */
 
 static reg_errcode_t
-__attribute_warn_unused_result__
-re_search_internal (const regex_t *preg,
-                   const char *string, Idx length,
-                   Idx start, Idx last_start, Idx stop,
-                   size_t nmatch, regmatch_t pmatch[],
-                   int eflags)
+__attribute_warn_unused_result__ internal_function
+re_search_internal (const regex_t *preg, const char *string, Idx length,
+                   Idx start, Idx last_start, Idx stop, size_t nmatch,
+                   regmatch_t pmatch[], int eflags)
 {
   reg_errcode_t err;
   const re_dfa_t *dfa = preg->buffer;
@@ -654,7 +621,7 @@ re_search_internal (const regex_t *preg,
   bool fl_longest_match;
   int match_kind;
   Idx match_first;
-  Idx match_last = REG_MISSING;
+  Idx match_last = -1;
   Idx extra_nmatch;
   bool sb;
   int ch;
@@ -863,9 +830,9 @@ re_search_internal (const regex_t *preg,
       mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0;
       match_last = check_matching (&mctx, fl_longest_match,
                                   start <= last_start ? &match_first : NULL);
-      if (match_last != REG_MISSING)
+      if (match_last != -1)
        {
-         if (BE (match_last == REG_ERROR, 0))
+         if (BE (match_last == -2, 0))
            {
              err = REG_ESPACE;
              goto free_return;
@@ -887,7 +854,7 @@ re_search_internal (const regex_t *preg,
                    break;
                  if (BE (err != REG_NOMATCH, 0))
                    goto free_return;
-                 match_last = REG_MISSING;
+                 match_last = -1;
                }
              else
                break; /* We found a match.  */
@@ -898,7 +865,7 @@ re_search_internal (const regex_t *preg,
     }
 
 #ifdef DEBUG
-  assert (match_last != REG_MISSING);
+  assert (match_last != -1);
   assert (err == REG_NOERROR);
 #endif
 
@@ -976,7 +943,7 @@ re_search_internal (const regex_t *preg,
 }
 
 static reg_errcode_t
-__attribute_warn_unused_result__
+internal_function __attribute_warn_unused_result__
 prune_impossible_nodes (re_match_context_t *mctx)
 {
   const re_dfa_t *const dfa = mctx->dfa;
@@ -1024,7 +991,7 @@ prune_impossible_nodes (re_match_context_t *mctx)
          do
            {
              --match_last;
-             if (! REG_VALID_INDEX (match_last))
+             if (match_last < 0)
                {
                  ret = REG_NOMATCH;
                  goto free_return;
@@ -1105,8 +1072,8 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
 }
 
 /* Check whether the regular expression match input string INPUT or not,
-   and return the index where the matching end.  Return REG_MISSING if
-   there is no match, and return REG_ERROR in case of an error.
+   and return the index where the matching end.  Return -1 if
+   there is no match, and return -2 in case of an error.
    FL_LONGEST_MATCH means we want the POSIX longest matching.
    If P_MATCH_FIRST is not NULL, and the match fails, it is set to the
    next place where we may want to try matching.
@@ -1121,7 +1088,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
   const re_dfa_t *const dfa = mctx->dfa;
   reg_errcode_t err;
   Idx match = 0;
-  Idx match_last = REG_MISSING;
+  Idx match_last = -1;
   Idx cur_str_idx = re_string_cur_idx (&mctx->input);
   re_dfastate_t *cur_state;
   bool at_init_state = p_match_first != NULL;
@@ -1133,7 +1100,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
   if (BE (cur_state == NULL, 0))
     {
       assert (err == REG_ESPACE);
-      return REG_ERROR;
+      return -2;
     }
 
   if (mctx->state_log != NULL)
@@ -1188,7 +1155,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
          if (BE (err != REG_NOERROR, 0))
            {
              assert (err == REG_ESPACE);
-             return REG_ERROR;
+             return -2;
            }
        }
 
@@ -1202,7 +1169,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match,
             state using the state log, if available and if we have not
             already found a valid (even if not the longest) match.  */
          if (BE (err != REG_NOERROR, 0))
-           return REG_ERROR;
+           return -2;
 
          if (mctx->state_log == NULL
              || (match && !fl_longest_match)
@@ -1285,7 +1252,7 @@ check_halt_state_context (const re_match_context_t *mctx,
 /* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA
    corresponding to the DFA).
    Return the destination node, and update EPS_VIA_NODES;
-   return REG_MISSING in case of errors.  */
+   return -1 in case of errors.  */
 
 static Idx
 internal_function
@@ -1303,15 +1270,15 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
       Idx dest_node;
       ok = re_node_set_insert (eps_via_nodes, node);
       if (BE (! ok, 0))
-       return REG_ERROR;
-      /* Pick up a valid destination, or return REG_MISSING if none
+       return -2;
+      /* Pick up a valid destination, or return -1 if none
         is found.  */
-      for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i)
+      for (dest_node = -1, i = 0; i < edests->nelem; ++i)
        {
          Idx candidate = edests->elems[i];
          if (!re_node_set_contains (cur_nodes, candidate))
            continue;
-          if (dest_node == REG_MISSING)
+          if (dest_node == -1)
            dest_node = candidate;
 
          else
@@ -1325,7 +1292,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
              else if (fs != NULL
                       && push_fail_stack (fs, *pidx, candidate, nregs, regs,
                                           eps_via_nodes))
-               return REG_ERROR;
+               return -2;
 
              /* We know we are going to exit.  */
              break;
@@ -1350,13 +1317,13 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
          if (fs != NULL)
            {
              if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
-               return REG_MISSING;
+               return -1;
              else if (naccepted)
                {
                  char *buf = (char *) re_string_get_buffer (&mctx->input);
                  if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
                              naccepted) != 0)
-                   return REG_MISSING;
+                   return -1;
                }
            }
 
@@ -1365,7 +1332,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
              Idx dest_node;
              ok = re_node_set_insert (eps_via_nodes, node);
              if (BE (! ok, 0))
-               return REG_ERROR;
+               return -2;
              dest_node = dfa->edests[node].elems[0];
              if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
                                        dest_node))
@@ -1381,12 +1348,12 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
          if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL
                     || !re_node_set_contains (&mctx->state_log[*pidx]->nodes,
                                               dest_node)))
-           return REG_MISSING;
+           return -1;
          re_node_set_empty (eps_via_nodes);
          return dest_node;
        }
     }
-  return REG_MISSING;
+  return -1;
 }
 
 static reg_errcode_t
@@ -1422,7 +1389,7 @@ pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
                regmatch_t *regs, re_node_set *eps_via_nodes)
 {
   Idx num = --fs->num;
-  assert (REG_VALID_INDEX (num));
+  assert (num >= 0);
   *pidx = fs->stack[num].idx;
   memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
   re_node_set_free (eps_via_nodes);
@@ -1515,9 +1482,9 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch,
       cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
                                    &eps_via_nodes, fs);
 
-      if (BE (! REG_VALID_INDEX (cur_node), 0))
+      if (BE (cur_node < 0, 0))
        {
-         if (BE (cur_node == REG_ERROR, 0))
+         if (BE (cur_node == -2, 0))
            {
              re_node_set_free (&eps_via_nodes);
              if (prev_idx_match_malloced)
@@ -1901,10 +1868,10 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
          {
            Idx edst1 = dfa->edests[cur_node].elems[0];
            Idx edst2 = ((dfa->edests[cur_node].nelem > 1)
-                        ? dfa->edests[cur_node].elems[1] : REG_MISSING);
+                        ? dfa->edests[cur_node].elems[1] : -1);
            if ((!re_node_set_contains (inv_eclosure, edst1)
                 && re_node_set_contains (dest_nodes, edst1))
-               || (REG_VALID_NONZERO_INDEX (edst2)
+               || (edst2 > 0
                    && !re_node_set_contains (inv_eclosure, edst2)
                    && re_node_set_contains (dest_nodes, edst2)))
              {
@@ -1984,7 +1951,7 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
       switch (dfa->nodes[node].type)
        {
        case OP_BACK_REF:
-         if (bkref_idx != REG_MISSING)
+         if (bkref_idx != -1)
            {
              struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx;
              do
@@ -2100,8 +2067,8 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
       subexp_idx = dfa->nodes[ent->node].opr.idx;
       if (ent->subexp_to == str_idx)
        {
-         Idx ops_node = REG_MISSING;
-         Idx cls_node = REG_MISSING;
+         Idx ops_node = -1;
+         Idx cls_node = -1;
          for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
            {
              Idx node = dest_nodes->elems[node_idx];
@@ -2116,7 +2083,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
 
          /* Check the limitation of the open subexpression.  */
          /* Note that (ent->subexp_to = str_idx != ent->subexp_from).  */
-         if (REG_VALID_INDEX (ops_node))
+         if (ops_node >= 0)
            {
              err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
                                           candidates);
@@ -2125,7 +2092,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
            }
 
          /* Check the limitation of the close subexpression.  */
-         if (REG_VALID_INDEX (cls_node))
+         if (cls_node >= 0)
            for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
              {
                Idx node = dest_nodes->elems[node_idx];
@@ -2178,7 +2145,7 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx,
   re_sift_context_t local_sctx;
   Idx first_idx = search_cur_bkref_entry (mctx, str_idx);
 
-  if (first_idx == REG_MISSING)
+  if (first_idx == -1)
     return REG_NOERROR;
 
   local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized.  */
@@ -2582,7 +2549,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
       if (BE (err != REG_NOERROR, 0))
        return err;
 #ifdef DEBUG
-      assert (dfa->nexts[cur_node_idx] != REG_MISSING);
+      assert (dfa->nexts[cur_node_idx] != -1);
 #endif
       new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx];
 
@@ -2648,7 +2615,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
       /* And add the epsilon closures (which is 'new_dest_nodes') of
         the backreference to appropriate state_log.  */
 #ifdef DEBUG
-      assert (dfa->nexts[node_idx] != REG_MISSING);
+      assert (dfa->nexts[node_idx] != -1);
 #endif
       for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx)
        {
@@ -2732,7 +2699,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
   const char *buf = (const char *) re_string_get_buffer (&mctx->input);
   /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX.  */
   Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx);
-  if (cache_idx != REG_MISSING)
+  if (cache_idx != -1)
     {
       const struct re_backref_cache_entry *entry
        = mctx->bkref_ents + cache_idx;
@@ -2837,7 +2804,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx)
          nodes = &mctx->state_log[sl_str]->nodes;
          cls_node = find_subexp_node (dfa, nodes, subexp_num,
                                       OP_CLOSE_SUBEXP);
-         if (cls_node == REG_MISSING)
+         if (cls_node == -1)
            continue; /* No.  */
          if (sub_top->path == NULL)
            {
@@ -2916,7 +2883,7 @@ find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
          && node->opr.idx == subexp_idx)
        return cls_node;
     }
-  return REG_MISSING;
+  return -1;
 }
 
 /* Check whether the node TOP_NODE at TOP_STR can arrive to the node
@@ -3192,7 +3159,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
       Idx cur_node = cur_nodes->elems[idx];
       const re_node_set *eclosure = dfa->eclosures + cur_node;
       outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type);
-      if (outside_node == REG_MISSING)
+      if (outside_node == -1)
        {
          /* There are no problematic nodes, just merge them.  */
          err = re_node_set_merge (&new_nodes, eclosure);
@@ -3278,7 +3245,7 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes,
   Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str);
   struct re_backref_cache_entry *ent;
 
-  if (cache_idx_start == REG_MISSING)
+  if (cache_idx_start == -1)
     return REG_NOERROR;
 
  restart:
@@ -3403,7 +3370,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
   /* At first, group all nodes belonging to 'state' into several
      destinations.  */
   ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
-  if (BE (! REG_VALID_NONZERO_INDEX (ndests), 0))
+  if (BE (ndests <= 0, 0))
     {
       if (dests_node_malloced)
        free (dests_alloc);
@@ -3465,7 +3432,7 @@ out_free:
       for (j = 0; j < dests_node[i].nelem; ++j)
        {
          next_node = dfa->nexts[dests_node[i].elems[j]];
-         if (next_node != REG_MISSING)
+         if (next_node != -1)
            {
              err = re_node_set_merge (&follows, dfa->eclosures + next_node);
              if (BE (err != REG_NOERROR, 0))
@@ -3776,7 +3743,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
  error_return:
   for (j = 0; j < ndests; ++j)
     re_node_set_free (dests_node + j);
-  return REG_MISSING;
+  return -1;
 }
 
 #ifdef RE_ENABLE_I18N
@@ -3788,6 +3755,10 @@ 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
+
 static int
 internal_function
 check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
@@ -3907,8 +3878,6 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
          const int32_t *table, *indirect;
          const unsigned char *weights, *extra;
          const char *collseqwc;
-         /* This #include defines a local function!  */
-#  include <locale/weight.h>
 
          /* match with collating_symbol?  */
          if (cset->ncoll_syms)
@@ -3965,7 +3934,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
                _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
              indirect = (const int32_t *)
                _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
-             int32_t idx = findidx (&cp, elem_len);
+             int32_t idx = findidx (table, indirect, extra, &cp, elem_len);
              if (idx > 0)
                for (i = 0; i < cset->nequiv_classes; ++i)
                  {
@@ -4205,7 +4174,7 @@ internal_function __attribute_warn_unused_result__
 match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
 {
   mctx->eflags = eflags;
-  mctx->match_last = REG_MISSING;
+  mctx->match_last = -1;
   if (n > 0)
     {
       /* Avoid overflow.  */
@@ -4326,7 +4295,7 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from,
   return REG_NOERROR;
 }
 
-/* Return the first entry with the same str_idx, or REG_MISSING if none is
+/* Return the first entry with the same str_idx, or -1 if none is
    found.  Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX.  */
 
 static Idx
@@ -4346,7 +4315,7 @@ search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
   if (left < last && mctx->bkref_ents[left].str_idx == str_idx)
     return left;
   else
-    return REG_MISSING;
+    return -1;
 }
 
 /* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches
index 6c11c5e..88a60dc 100644 (file)
@@ -1,6 +1,6 @@
-/* Look up an environment variable more securely.
+/* Look up an environment variable, returning NULL in insecure situations.
 
-   Copyright 2013 Free Software Foundation, Inc.
+   Copyright 2013-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
 #include <stdlib.h>
 
 #if !HAVE___SECURE_GETENV
-# if HAVE_ISSETUGID
+# if HAVE_ISSETUGID || (HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID)
 #  include <unistd.h>
-# else
-#  undef issetugid
-#  define issetugid() 1
 # endif
 #endif
 
 char *
 secure_getenv (char const *name)
 {
-#if HAVE___SECURE_GETENV
+#if HAVE___SECURE_GETENV /* glibc */
   return __secure_getenv (name);
-#else
+#elif HAVE_ISSETUGID /* OS X, FreeBSD, NetBSD, OpenBSD */
   if (issetugid ())
-    return 0;
+    return NULL;
+  return getenv (name);
+#elif HAVE_GETUID && HAVE_GETEUID && HAVE_GETGID && HAVE_GETEGID /* other Unix */
+  if (geteuid () != getuid () || getegid () != getgid ())
+    return NULL;
   return getenv (name);
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* native Windows */
+  /* On native Windows, there is no such concept as setuid or setgid binaries.
+     - Programs launched as system services have high privileges, but they don't
+       inherit environment variables from a user.
+     - Programs launched by a user with "Run as Administrator" have high
+       privileges and use the environment variables, but the user has been asked
+       whether he agrees.
+     - Programs launched by a user without "Run as Administrator" cannot gain
+       high privileges, therefore there is no risk. */
+  return getenv (name);
+#else
+  return NULL;
 #endif
 }
similarity index 99%
rename from gnulib-tests/setenv.c
rename to lib/setenv.c
index 995a0f2..85c32cb 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2003, 2005-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
index 05d83db..2db6d0d 100644 (file)
@@ -1,5 +1,5 @@
 /* Shell quoting.
-   Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2016 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
index d08502d..1708d95 100644 (file)
@@ -1,5 +1,5 @@
 /* Shell quoting.
-   Copyright (C) 2001-2002, 2004, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2004, 2009-2016 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
index ca9f979..ad8c1dd 100644 (file)
@@ -1,6 +1,6 @@
 /* Convenience declarations when working with <signal.h>.
 
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@
 
 #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
@@ -31,7 +34,7 @@ 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
+SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE
 get_handler (struct sigaction const *a)
 {
 #ifdef SA_SIGINFO
index 97eb76d..529b612 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Eric Blake <ebb9@byu.net>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 5484950..ab0a049 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <signal.h>.
 
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #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 declare
-   pthread_sigmask in <pthread.h>, not in <signal.h>.
+/* Mac OS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6, Android
+   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 __APPLE__ && defined __MACH__) \
+        || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ \
+        || defined __sun || defined __ANDROID__) \
     && ! defined __GLIBC__
 # include <pthread.h>
 #endif
@@ -195,6 +197,20 @@ typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
 
 # endif
 
+/* When also using extern inline, suppress the use of static inline in
+   standard headers of problematic Apple configurations, as Libc at
+   least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
+     && (defined __i386__ || defined __x86_64__))
+# undef sigaddset
+# undef sigdelset
+# undef sigemptyset
+# undef sigfillset
+# undef sigismember
+#endif
+
 /* Test whether a given signal is contained in a signal set.  */
 # if @HAVE_POSIX_SIGNALBLOCKING@
 /* This function is defined as a macro on Mac OS X.  */
index 8de3777..fcbf032 100644 (file)
@@ -1,5 +1,5 @@
 /* POSIX compatible signal blocking.
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2006.
 
    This program is free software: you can redistribute it and/or modify
index 5f33124..2f2792c 100644 (file)
@@ -1,5 +1,5 @@
 /* size_max.h -- declare SIZE_MAX through system headers
-   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 2d3b5cd..f5c4cd2 100644 (file)
@@ -1,6 +1,6 @@
 /* stat-related time functions.
 
-   Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This 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,6 +23,9 @@
 #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
@@ -51,7 +54,7 @@ _GL_INLINE_HEADER_BEGIN
 #endif
 
 /* Return the nanosecond component of *ST's access time.  */
-_GL_STAT_TIME_INLINE long int
+_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
 get_stat_atime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -64,7 +67,7 @@ get_stat_atime_ns (struct stat const *st)
 }
 
 /* Return the nanosecond component of *ST's status change time.  */
-_GL_STAT_TIME_INLINE long int
+_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
 get_stat_ctime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -77,7 +80,7 @@ get_stat_ctime_ns (struct stat const *st)
 }
 
 /* Return the nanosecond component of *ST's data modification time.  */
-_GL_STAT_TIME_INLINE long int
+_GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
 get_stat_mtime_ns (struct stat const *st)
 {
 # if defined STAT_TIMESPEC
@@ -90,7 +93,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_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE
 get_stat_birthtime_ns (struct stat const *st)
 {
 # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
@@ -105,7 +108,7 @@ get_stat_birthtime_ns (struct stat const *st)
 }
 
 /* Return *ST's access time.  */
-_GL_STAT_TIME_INLINE struct timespec
+_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
 get_stat_atime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -119,7 +122,7 @@ get_stat_atime (struct stat const *st)
 }
 
 /* Return *ST's status change time.  */
-_GL_STAT_TIME_INLINE struct timespec
+_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
 get_stat_ctime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -133,7 +136,7 @@ get_stat_ctime (struct stat const *st)
 }
 
 /* Return *ST's data modification time.  */
-_GL_STAT_TIME_INLINE struct timespec
+_GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
 get_stat_mtime (struct stat const *st)
 {
 #ifdef STAT_TIMESPEC
@@ -148,7 +151,7 @@ get_stat_mtime (struct stat const *st)
 
 /* 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_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE
 get_stat_birthtime (struct stat const *st)
 {
   struct timespec t;
index f888130..62e9e0b 100644 (file)
@@ -1,5 +1,5 @@
 /* Work around platform bugs in stat.
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7484842..63371e2 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <stdarg.h>.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7c15772..7ecf203 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2003, 2006-2016 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
index 40f0536..f4c4a10 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
 
-   Copyright (C) 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -39,7 +39,6 @@
 
 # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
 #  ifdef __need_wint_t
-#   undef _@GUARD_PREFIX@_STDDEF_H
 #   define _GL_STDDEF_WINT_T
 #  endif
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 
 #  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
 
-#  ifndef _@GUARD_PREFIX@_STDDEF_H
-#   define _@GUARD_PREFIX@_STDDEF_H
-
 /* On NetBSD 5.0, the definition of NULL lacks proper parentheses.  */
-#if @REPLACE_NULL@
-# undef NULL
-# ifdef __cplusplus
+#  if (@REPLACE_NULL@ \
+       && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T))
+#   undef NULL
+#   ifdef __cplusplus
    /* ISO C++ says that the macro NULL must expand to an integer constant
       expression, hence '((void *) 0)' is not allowed in C++.  */
-#  if __GNUG__ >= 3
+#    if __GNUG__ >= 3
     /* GNU C++ has a __null macro that behaves like an integer ('int' or
        'long') but has the same size as a pointer.  Use that, to avoid
        warnings.  */
-#   define NULL __null
-#  else
-#   define NULL 0L
+#     define NULL __null
+#    else
+#     define NULL 0L
+#    endif
+#   else
+#    define NULL ((void *) 0)
+#   endif
 #  endif
-# else
-#  define NULL ((void *) 0)
-# endif
-#endif
+
+#  ifndef _@GUARD_PREFIX@_STDDEF_H
+#   define _@GUARD_PREFIX@_STDDEF_H
 
 /* Some platforms lack wchar_t.  */
 #if !@HAVE_WCHAR_T@
 # define wchar_t int
 #endif
 
+/* Some platforms lack max_align_t.  The check for _GCC_MAX_ALIGN_T is
+   a hack in case the configure-time test was done with g++ even though
+   we are currently compiling with gcc.  */
+#if ! (@HAVE_MAX_ALIGN_T@ || defined _GCC_MAX_ALIGN_T)
+/* On the x86, the maximum storage alignment of double, long, etc. is 4,
+   but GCC's C11 ABI for x86 says that max_align_t has an alignment of 8,
+   and the C11 standard allows this.  Work around this problem by
+   using __alignof__ (which returns 8 for double) rather than _Alignof
+   (which returns 4), and align each union member accordingly.  */
+# ifdef __GNUC__
+#  define _GL_STDDEF_ALIGNAS(type) \
+     __attribute__ ((__aligned__ (__alignof__ (type))))
+# else
+#  define _GL_STDDEF_ALIGNAS(type) /* */
+# endif
+typedef union
+{
+  char *__p _GL_STDDEF_ALIGNAS (char *);
+  double __d _GL_STDDEF_ALIGNAS (double);
+  long double __ld _GL_STDDEF_ALIGNAS (long double);
+  long int __i _GL_STDDEF_ALIGNAS (long int);
+} max_align_t;
+#endif
+
 #  endif /* _@GUARD_PREFIX@_STDDEF_H */
 # endif /* _@GUARD_PREFIX@_STDDEF_H */
 #endif /* __need_XXX */
index 2db8b2e..cf65ec6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2002, 2004-2016 Free Software Foundation, Inc.
    Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
    This file is part of gnulib.
 
@@ -38,8 +38,7 @@
    other system header files; just include the system's <stdint.h>.
    Ideally we should test __BIONIC__ here, but it is only defined after
    <sys/cdefs.h> has been included; hence test __ANDROID__ instead.  */
-#if defined __ANDROID__ \
-    && defined _SYS_TYPES_H_ && !defined __need_size_t
+#if defined __ANDROID__ && defined _GL_INCLUDING_SYS_TYPES_H
 # @INCLUDE_NEXT@ @NEXT_STDINT_H@
 #else
 
    picky compilers.  */
 
 #define _STDINT_MIN(signed, bits, zero) \
-  ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+  ((signed) ? ~ _STDINT_MAX (signed, bits, zero) : (zero))
 
 #define _STDINT_MAX(signed, bits, zero) \
-  ((signed) \
-   ? ~ _STDINT_MIN (signed, bits, zero) \
-   : /* The expression for the unsigned case.  The subtraction of (signed) \
-        is a nop in the unsigned case and avoids "signed integer overflow" \
-        warnings in the signed case.  */ \
-     ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+  (((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
 
 #if !GNULIB_defined_stdint_types
 
@@ -289,12 +283,17 @@ typedef gl_uint_fast32_t gl_uint_fast16_t;
 
 /* 7.18.1.4. Integer types capable of holding object pointers */
 
+/* kLIBC's stdint.h defines _INTPTR_T_DECLARED and needs its own
+   definitions of intptr_t and uintptr_t (which use int and unsigned)
+   to avoid clashes with declarations of system functions like sbrk.  */
+#ifndef _INTPTR_T_DECLARED
 #undef intptr_t
 #undef uintptr_t
 typedef long int gl_intptr_t;
 typedef unsigned long int gl_uintptr_t;
 #define intptr_t gl_intptr_t
 #define uintptr_t gl_uintptr_t
+#endif
 
 /* 7.18.1.5. Greatest-width integer types */
 
index fe6d83e..8e23817 100644 (file)
@@ -1,6 +1,6 @@
 /* Like stdio.h, but redefine some names to avoid glitches.
 
-   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7b67ae0..4231609 100644 (file)
@@ -1,6 +1,6 @@
 /* Invoke stdio functions, but avoid some glitches.
 
-   Copyright (C) 2001, 2003, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003, 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d6af99c..9b31365 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdio.h>.
 
-   Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2007-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    except that it indicates to GCC that the supported format string directives
    are the ones of the system printf(), rather than the ones standardized by
    ISO C99 and POSIX.  */
-#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
+#if GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU
+# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
+  _GL_ATTRIBUTE_FORMAT_PRINTF (formatstring_parameter, first_argument)
+#else
+# define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
   _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+#endif
 
 /* _GL_ATTRIBUTE_FORMAT_SCANF
    indicates to GCC that the function takes a format string and arguments,
 #define _GL_STDIO_STRINGIZE(token) #token
 #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
 
+/* When also using extern inline, suppress the use of static inline in
+   standard headers of problematic Apple configurations, as Libc at
+   least through Libc-825.26 (2013-04-09) mishandles it; see, e.g.,
+   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
+   Perhaps Apple will fix this some day.  */
+#if (defined _GL_EXTERN_INLINE_IN_USE && defined __APPLE__ \
+     && defined __GNUC__ && defined __STDC__)
+# undef putc_unlocked
+#endif
 
 #if @GNULIB_DPRINTF@
 # if @REPLACE_DPRINTF@
@@ -579,13 +593,23 @@ _GL_CXXALIAS_SYS (fwrite, size_t,
    <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
    which sometimes causes an unwanted diagnostic for fwrite calls.
    This affects only function declaration attributes under certain
-   versions of gcc, and is not needed for C++.  */
+   versions of gcc and clang, and is not needed for C++.  */
 #  if (0 < __USE_FORTIFY_LEVEL                                          \
        && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \
        && 3 < __GNUC__ + (4 <= __GNUC_MINOR__)                          \
        && !defined __cplusplus)
 #   undef fwrite
-#   define fwrite(a, b, c, d) ({size_t __r = fwrite (a, b, c, d); __r; })
+#   undef fwrite_unlocked
+extern size_t __REDIRECT (rpl_fwrite,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite);
+extern size_t __REDIRECT (rpl_fwrite_unlocked,
+                          (const void *__restrict, size_t, size_t,
+                           FILE *__restrict),
+                          fwrite_unlocked);
+#   define fwrite rpl_fwrite
+#   define fwrite_unlocked rpl_fwrite_unlocked
 #  endif
 # endif
 _GL_CXXALIASWARN (fwrite);
@@ -699,11 +723,10 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
    so any use of gets warrants an unconditional warning; besides, C11
    removed it.  */
 #undef gets
-#if HAVE_RAW_DECL_GETS
+#if HAVE_RAW_DECL_GETS && !defined __cplusplus
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 #endif
 
-
 #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@
 struct obstack;
 /* Grow an obstack with formatted output.  Return the number of
index c955248..70dc88d 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <stdlib.h>.
 
-   Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1995, 2001-2004, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -520,6 +520,29 @@ _GL_CXXALIAS_SYS (putenv, int, (char *string));
 _GL_CXXALIASWARN (putenv);
 #endif
 
+#if @GNULIB_QSORT_R@
+# 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 *),
+                                  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 *),
+                                  void *arg));
+# else
+_GL_CXXALIAS_SYS (qsort_r, void, (void *base, size_t nmemb, size_t size,
+                                  int (*compare) (void const *, void const *,
+                                                  void *),
+                                  void *arg));
+# endif
+_GL_CXXALIASWARN (qsort_r);
+#endif
+
 
 #if @GNULIB_RANDOM_R@
 # if !@HAVE_RANDOM_R@
index 16d83a1..fcb2813 100644 (file)
@@ -1,6 +1,6 @@
 /* Substring search in a NUL terminated string of UNIT elements,
    using the Knuth-Morris-Pratt algorithm.
-   Copyright (C) 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2005.
 
    This program is free software; you can redistribute it and/or modify
index 0f0a742..ac9f84f 100644 (file)
@@ -1,5 +1,5 @@
 /* Case-insensitive string comparison function.
-   Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 12c1867..234f075 100644 (file)
@@ -1,5 +1,5 @@
 /* Optimized string comparison.
-   Copyright (C) 2001-2002, 2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index d0ed2fb..9bc9b18 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.c --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3b8f24b..5264fd5 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror-override.h --- POSIX compatible system error routine
 
-   Copyright (C) 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -48,7 +48,7 @@
      || GNULIB_defined_EOWNERDEAD \
      || GNULIB_defined_ENOTRECOVERABLE \
      || GNULIB_defined_EILSEQ
-extern const char *strerror_override (int errnum);
+extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST;
 # else
 #  define strerror_override(ignored) NULL
 # endif
index 80a2f2e..45c7633 100644 (file)
@@ -1,6 +1,6 @@
 /* strerror.c --- POSIX compatible system error routine
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 91d5d85..4e65190 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1991-2001, 2003-2007, 2009-2016 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.
@@ -30,6 +30,7 @@
 # else
 #  include "strftime.h"
 # endif
+# include "time-internal.h"
 #endif
 
 #include <ctype.h>
@@ -121,22 +122,11 @@ extern char *tzname[];
 
 
 #ifdef _LIBC
+# define mktime_z(tz, tm) mktime (tm)
 # define tzname __tzname
 # define tzset __tzset
 #endif
 
-#if !HAVE_TM_GMTOFF
-/* Portable standalone applications should supply a "time.h" that
-   declares a POSIX-compliant localtime_r, for the benefit of older
-   implementations that lack localtime_r or have a nonstandard one.
-   See the gnulib time_r module for one way to implement this.  */
-# undef __gmtime_r
-# undef __localtime_r
-# define __gmtime_r gmtime_r
-# define __localtime_r localtime_r
-#endif
-
-
 #ifndef FPRINTFTIME
 # define FPRINTFTIME 0
 #endif
@@ -385,12 +375,7 @@ iso_week_days (int yday, int wday)
 
 /* When compiling this file, GNU applications can #define my_strftime
    to a symbol (typically nstrftime) to get an extended strftime with
-   extra arguments UT and NS.  Emacs is a special case for now, but
-   this Emacs-specific code can be removed once Emacs's config.h
-   defines my_strftime.  */
-#if defined emacs && !defined my_strftime
-# define my_strftime nstrftime
-#endif
+   extra arguments TZ and NS.  */
 
 #if FPRINTFTIME
 # undef my_strftime
@@ -398,8 +383,9 @@ iso_week_days (int yday, int wday)
 #endif
 
 #ifdef my_strftime
-# define extra_args , ut, ns
-# define extra_args_spec , int ut, int ns
+# undef HAVE_TZSET
+# define extra_args , tz, ns
+# define extra_args_spec , timezone_t tz, int ns
 #else
 # if defined COMPILE_WIDE
 #  define my_strftime wcsftime
@@ -411,7 +397,7 @@ iso_week_days (int yday, int wday)
 # define extra_args
 # define extra_args_spec
 /* We don't have this information in general.  */
-# define ut 0
+# define tz 1
 # define ns 0
 #endif
 
@@ -455,6 +441,9 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
 # define am_len STRLEN (a_month)
 # define ap_len STRLEN (ampm)
 #endif
+#if HAVE_TZNAME
+  char **tzname_vec = tzname;
+#endif
   const char *zone;
   size_t i = 0;
   STREAM_OR_CHAR_T *p = s;
@@ -483,20 +472,29 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
   zone = (const char *) tp->tm_zone;
 #endif
 #if HAVE_TZNAME
-  if (ut)
+  if (!tz)
     {
       if (! (zone && *zone))
         zone = "GMT";
     }
   else
     {
+# if !HAVE_TM_ZONE
+      /* Infer the zone name from *TZ instead of from TZNAME.  */
+      tzname_vec = tz->tzname_copy;
+# endif
       /* POSIX.1 requires that local time zone information be used as
          though strftime called tzset.  */
 # if HAVE_TZSET
       tzset ();
 # endif
     }
+  /* The tzset() call might have changed the value.  */
+  if (!(zone && *zone) && tp->tm_isdst >= 0)
+    zone = tzname_vec[tp->tm_isdst != 0];
 #endif
+  if (! zone)
+    zone = "";
 
   if (hour12 > 12)
     hour12 -= 12;
@@ -643,7 +641,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
           break;
         }
 
-      /* As a GNU extension we allow to specify the field width.  */
+      /* As a GNU extension we allow the field width to be specified.  */
       if (ISDIGIT (*f))
         {
           width = 0;
@@ -681,24 +679,44 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
       switch (format_char)
         {
 #define DO_NUMBER(d, v) \
-          digits = d;                                                         \
-          number_value = v; goto do_number
+          do                                                                  \
+            {                                                                 \
+              digits = d;                                                     \
+              number_value = v;                                               \
+              goto do_number;                                                 \
+            }                                                                 \
+          while (0)
 #define DO_SIGNED_NUMBER(d, negative, v) \
-          digits = d;                                                         \
-          negative_number = negative;                                         \
-          u_number_value = v; goto do_signed_number
+          do                                                                  \
+            {                                                                 \
+              digits = d;                                                     \
+              negative_number = negative;                                     \
+              u_number_value = v;                                             \
+              goto do_signed_number;                                          \
+            }                                                                 \
+          while (0)
 
           /* The mask is not what you might think.
              When the ordinal i'th bit is set, insert a colon
              before the i'th digit of the time zone representation.  */
 #define DO_TZ_OFFSET(d, negative, mask, v) \
-          digits = d;                                                         \
-          negative_number = negative;                                         \
-          tz_colon_mask = mask;                                               \
-          u_number_value = v; goto do_tz_offset
+          do                                                                  \
+            {                                                                 \
+              digits = d;                                                     \
+              negative_number = negative;                                     \
+              tz_colon_mask = mask;                                           \
+              u_number_value = v;                                             \
+              goto do_tz_offset;                                              \
+            }                                                                 \
+          while (0)
 #define DO_NUMBER_SPACEPAD(d, v) \
-          digits = d;                                                         \
-          number_value = v; goto do_number_spacepad
+          do                                                                  \
+            {                                                                 \
+              digits = d;                                                     \
+              number_value = v;                                               \
+              goto do_number_spacepad;                                        \
+            }                                                                 \
+          while (0)
 
         case L_('%'):
           if (modifier != 0)
@@ -1124,7 +1142,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
             time_t t;
 
             ltm = *tp;
-            t = mktime (&ltm);
+            t = mktime_z (tz, &ltm);
 
             /* Generate string value for T using time_t arithmetic;
                this works even if sizeof (long) < sizeof (time_t).  */
@@ -1265,9 +1283,9 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
             }
           if (modifier == L_('O'))
             goto bad_format;
-          else
-            DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
-                              tp->tm_year + (unsigned int) TM_YEAR_BASE);
+
+          DO_SIGNED_NUMBER (4, tp->tm_year < -TM_YEAR_BASE,
+                            tp->tm_year + (unsigned int) TM_YEAR_BASE);
 
         case L_('y'):
           if (modifier == L_('E'))
@@ -1299,14 +1317,6 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
               to_lowcase = true;
             }
 
-#if HAVE_TZNAME
-          /* The tzset() call might have changed the value.  */
-          if (!(zone && *zone) && tp->tm_isdst >= 0)
-            zone = tzname[tp->tm_isdst != 0];
-#endif
-          if (! zone)
-            zone = "";
-
 #ifdef COMPILE_WIDE
           {
             /* The zone string is always given in multibyte form.  We have
@@ -1346,7 +1356,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
 #if HAVE_TM_GMTOFF
             diff = tp->tm_gmtoff;
 #else
-            if (ut)
+            if (!tz)
               diff = 0;
             else
               {
@@ -1355,7 +1365,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
                 time_t lt;
 
                 ltm = *tp;
-                lt = mktime (&ltm);
+                lt = mktime_z (tz, &ltm);
 
                 if (lt == (time_t) -1)
                   {
@@ -1364,7 +1374,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
                        occurred.  */
                     struct tm tm;
 
-                    if (! __localtime_r (&lt, &tm)
+                    if (! localtime_rz (tz, &lt, &tm)
                         || ((ltm.tm_sec ^ tm.tm_sec)
                             | (ltm.tm_min ^ tm.tm_min)
                             | (ltm.tm_hour ^ tm.tm_hour)
@@ -1374,7 +1384,7 @@ strftime_case_ (bool upcase, STREAM_OR_CHAR_T *s,
                       break;
                   }
 
-                if (! __gmtime_r (&lt, &gtm))
+                if (! localtime_rz (0, &lt, &gtm))
                   break;
 
                 diff = tm_diff (&ltm, &gtm);
@@ -1453,15 +1463,3 @@ my_strftime (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize)
 #if defined _LIBC && ! FPRINTFTIME
 libc_hidden_def (my_strftime)
 #endif
-
-
-#if defined emacs && ! FPRINTFTIME
-/* For Emacs we have a separate interface which corresponds to the normal
-   strftime function plus the ut argument, but without the ns argument.  */
-size_t
-emacs_strftimeu (char *s, size_t maxsize, const char *format,
-                 const struct tm *tp, int ut)
-{
-  return my_strftime (s, maxsize, format, tp, ut, 0);
-}
-#endif
index a47e6d1..17445e1 100644 (file)
@@ -1,6 +1,6 @@
 /* declarations for strftime.c
 
-   Copyright (C) 2002, 2004, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2004, 2008-2016 Free Software Foundation, Inc.
 
    This 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,11 +23,10 @@ extern "C" {
 
 /* Just like strftime, but with two more arguments:
    POSIX requires that strftime use the local timezone information.
-   When __UTC is nonzero and tm->tm_zone is NULL or the empty string,
-   use UTC instead.  Use __NS as the number of nanoseconds in the
-   %N directive.  */
+   Use the timezone __TZ instead.  Use __NS as the number of
+   nanoseconds in the %N directive.  */
 size_t nstrftime (char *, size_t, char const *, struct tm const *,
-                  int __utc, int __ns);
+                  timezone_t __tz, int __ns);
 
 #ifdef __cplusplus
 }
index ba90edd..0d9ccdc 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion.
-   Copyright (C) 2001-2007, 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2007, 2010-2016 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 88eaf9d..e5217d7 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion.
-   Copyright (C) 2001-2004, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index d7a6c9c..7fb00c1 100644 (file)
@@ -1,6 +1,6 @@
 /* A GNU-like <string.h>.
 
-   Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc.
+   Copyright (C) 1995-1996, 2001-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    You should have received a copy of the GNU General Public License
    along with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
-#ifndef _@GUARD_PREFIX@_STRING_H
-
 #if __GNUC__ >= 3
 @PRAGMA_SYSTEM_HEADER@
 #endif
 @PRAGMA_COLUMNS@
 
+#if defined _GL_ALREADY_INCLUDING_STRING_H
+/* Special invocation convention:
+   - On OS X/NetBSD we have a sequence of nested includes
+       <string.h> -> <strings.h> -> "string.h"
+     In this situation system _chk variants due to -D_FORTIFY_SOURCE
+     might be used after any replacements defined here.  */
+
+#@INCLUDE_NEXT@ @NEXT_STRING_H@
+
+#else
+/* Normal invocation convention.  */
+
+#ifndef _@GUARD_PREFIX@_STRING_H
+
+#define _GL_ALREADY_INCLUDING_STRING_H
+
 /* The include_next requires a split double-inclusion guard.  */
 #@INCLUDE_NEXT@ @NEXT_STRING_H@
 
+#undef _GL_ALREADY_INCLUDING_STRING_H
+
 #ifndef _@GUARD_PREFIX@_STRING_H
 #define _@GUARD_PREFIX@_STRING_H
 
@@ -1027,3 +1043,4 @@ _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - "
 
 #endif /* _@GUARD_PREFIX@_STRING_H */
 #endif /* _@GUARD_PREFIX@_STRING_H */
+#endif
index 4469f86..d5cabc5 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute <strings.h>.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 0e452a9..0453e36 100644 (file)
@@ -1,6 +1,6 @@
 /* stripslash.c -- remove redundant trailing slashes from a file name
 
-   Copyright (C) 1990, 2001, 2003-2006, 2009-2013 Free Software Foundation,
+   Copyright (C) 1990, 2001, 2003-2006, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 35840bc..07a55ea 100644 (file)
@@ -1,5 +1,5 @@
 /* strncasecmp.c -- case insensitive string comparator
-   Copyright (C) 1998-1999, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1998-1999, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index e60268b..6250fcd 100644 (file)
@@ -1,6 +1,6 @@
 /* A replacement function, for systems that lack strndup.
 
-   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2013 Free Software
+   Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify it
index 57fdfe7..1bd7936 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING, but scan at most MAXLEN characters.
-   Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Simon Josefsson.
 
    This program is free software; you can redistribute it and/or modify
index 0c22d21..f5e0ffc 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 7c65e31..d3cd7c1 100644 (file)
@@ -1,5 +1,5 @@
 /* Find the length of STRING + 1, but scan at most MAXLEN bytes.
-   Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1c9e13c..a6a306c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002, 2004-2005, 2007, 2009-2013 Free Software Foundation,
+/* Copyright (C) 2002, 2004-2005, 2007, 2009-2016 Free Software Foundation,
    Inc.
    This file is part of the GNU C Library.
 
index c9bd2ad..223412b 100644 (file)
@@ -1,6 +1,6 @@
 /* Convert string representation of a number into an intmax_t value.
 
-   Copyright (C) 1999, 2001-2004, 2006, 2009-2013 Free Software Foundation,
+   Copyright (C) 1999, 2001-2004, 2006, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
 #include "verify.h"
 
 #ifdef UNSIGNED
-# ifndef HAVE_DECL_STRTOULL
+# if HAVE_UNSIGNED_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOULL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOULL
 unsigned long long int strtoull (char const *, char **, int);
+#  endif
 # endif
 
 #else
 
-# ifndef HAVE_DECL_STRTOLL
+# if HAVE_LONG_LONG_INT
+#  ifndef HAVE_DECL_STRTOLL
 "this configure-time declaration test was not run"
-# endif
-# if !HAVE_DECL_STRTOLL && HAVE_LONG_LONG_INT
+#  endif
+#  if !HAVE_DECL_STRTOLL
 long long int strtoll (char const *, char **, int);
+#  endif
 # endif
 #endif
 
 #ifdef UNSIGNED
 # define Have_long_long HAVE_UNSIGNED_LONG_LONG_INT
 # define Int uintmax_t
+# define Strtoimax strtoumax
+# define Strtol strtoul
+# define Strtoll strtoull
 # define Unsigned unsigned
-# define strtoimax strtoumax
-# define strtol strtoul
-# define strtoll strtoull
 #else
 # define Have_long_long HAVE_LONG_LONG_INT
 # define Int intmax_t
+# define Strtoimax strtoimax
+# define Strtol strtol
+# define Strtoll strtoll
 # define Unsigned
 #endif
 
 Int
-strtoimax (char const *ptr, char **endptr, int base)
+Strtoimax (char const *ptr, char **endptr, int base)
 {
 #if Have_long_long
   verify (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);
+    return Strtoll (ptr, endptr, base);
 #else
   verify (sizeof (Int) == sizeof (Unsigned long int));
 #endif
 
-  return strtol (ptr, endptr, base);
+  return Strtol (ptr, endptr, base);
 }
index 379eda8..6ef8a96 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-2013 Free Software
+   Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    NOTE: The canonical source of this file is maintained with the GNU C
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
 
-/* True if negative values of the signed integer type T use two's
-   complement, ones' complement, or signed magnitude representation,
-   respectively.  Much GNU code assumes two's complement, but some
-   people like to be portable to all possible C hosts.  */
-# define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
-# define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0)
-# define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1)
-
 /* True if the arithmetic type T is signed.  */
 # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
-/* The maximum and minimum values for the integer type T.  These
-   macros have undefined behavior if T is signed and has padding bits.
-   If this is a problem for you, please let us know how to fix it for
-   your host.  */
-# define TYPE_MINIMUM(t) \
-   ((t) (! TYPE_SIGNED (t) \
-         ? (t) 0 \
-         : TYPE_SIGNED_MAGNITUDE (t) \
-         ? ~ (t) 0 \
-         : ~ TYPE_MAXIMUM (t)))
-# define TYPE_MAXIMUM(t) \
-   ((t) (! TYPE_SIGNED (t) \
-         ? (t) -1 \
+/* Minimum and maximum values for integer types.
+   These macros have undefined behavior for signed types that either
+   have padding bits or do not use two's complement.  If this is a
+   problem for you, please let us know how to fix it for your host.  */
+
+/* The maximum and minimum values for the integer type T.  */
+# define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t))
+# define TYPE_MAXIMUM(t)                                                 \
+   ((t) (! TYPE_SIGNED (t)                                               \
+         ? (t) -1                                                        \
          : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
 
 # ifndef ULLONG_MAX
index a0ca376..6a5d4dd 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1997, 2009-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1997, 2009-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
index 494cc2f..16da823 100644 (file)
@@ -1,5 +1,5 @@
 /* Function to parse an 'unsigned long long int' from text.
-   Copyright (C) 1995-1997, 1999, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1995-1997, 1999, 2009-2016 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@gnu.org.
 
index acc3694..72d9537 100644 (file)
@@ -1,5 +1,5 @@
 /* Provide a more complete sys/stat header file.
-   Copyright (C) 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 656c3f1..1623a1d 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/time.h.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This 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
 @PRAGMA_COLUMNS@
 
+/* 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.
+   Without this extra ifdef, the C++ gettimeofday declaration below
+   would be a forward declaration in gnulib's nested <sys/time.h>.  */
+#if defined _CYGWIN_SYS_TIME_H || defined _SYS_TIME_H || defined _SYS_TIME_H_
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+#else
+
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_SYS_TIME_H@
 # @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
@@ -200,4 +209,5 @@ _GL_WARN_ON_USE (gettimeofday, "gettimeofday is unportable - "
 #endif
 
 #endif /* _@GUARD_PREFIX@_SYS_TIME_H */
+#endif /* _CYGWIN_SYS_TIME_H */
 #endif /* _@GUARD_PREFIX@_SYS_TIME_H */
index d7da356..8ab0545 100644 (file)
@@ -1,6 +1,6 @@
 /* Provide a more complete sys/types.h.
 
-   Copyright (C) 2011-2013 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This 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,9 @@
 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
 
 /* The include_next requires a split double-inclusion guard.  */
+# define _GL_INCLUDING_SYS_TYPES_H
 #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
+# undef _GL_INCLUDING_SYS_TYPES_H
 
 #ifndef _@GUARD_PREFIX@_SYS_TYPES_H
 #define _@GUARD_PREFIX@_SYS_TYPES_H
index bd97d61..3982b2b 100644 (file)
@@ -1,5 +1,5 @@
 /* A POSIX-like <sys/wait.h>.
-   Copyright (C) 2001-2003, 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2003, 2005-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 3a13a01..5cb6fde 100644 (file)
@@ -1,5 +1,5 @@
 /* Quoting for a system command.
-   Copyright (C) 2012-2013 Free Software Foundation, Inc.
+   Copyright (C) 2012-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2012.
 
    This program is free software: you can redistribute it and/or modify
index 840bdf8..b56f467 100644 (file)
@@ -1,5 +1,5 @@
 /* Quoting for a system command.
-   Copyright (C) 2001-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2012.
 
    This program is free software: you can redistribute it and/or modify
index 087b79b..b1e9880 100644 (file)
@@ -1,6 +1,6 @@
 /* tempname.c - generate the name of a temporary file.
 
-   Copyright (C) 1991-2003, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1991-2003, 2005-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -62,6 +62,7 @@
 # define struct_stat64 struct stat64
 #else
 # define struct_stat64 struct stat
+# define __try_tempname try_tempname
 # define __gen_tempname gen_tempname
 # define __getpid getpid
 # define __gettimeofday gettimeofday
@@ -176,21 +177,9 @@ __path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
 static const char letters[] =
 "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 
-/* Generate a temporary file name based on TMPL.  TMPL must match the
-   rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix).
-   The name constructed does not exist at the time of the call to
-   __gen_tempname.  TMPL is overwritten with the result.
-
-   KIND may be one of:
-   __GT_NOCREATE:       simply verify that the name does not exist
-                        at the time of the call.
-   __GT_FILE:           create the file using open(O_CREAT|O_EXCL)
-                        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. */
 int
-__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+__try_tempname (char *tmpl, int suffixlen, void *args,
+                int (*tryfunc) (char *, void *))
 {
   int len;
   char *XXXXXX;
@@ -199,7 +188,6 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
   unsigned int count;
   int fd = -1;
   int save_errno = errno;
-  struct_stat64 st;
 
   /* A lower bound on the number of temporary files to attempt to
      generate.  The maximum total number of temporary file names that
@@ -256,41 +244,7 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
       v /= 62;
       XXXXXX[5] = letters[v % 62];
 
-      switch (kind)
-        {
-        case __GT_FILE:
-          fd = __open (tmpl,
-                       (flags & ~O_ACCMODE)
-                       | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
-          break;
-
-        case __GT_DIR:
-          fd = __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
-          break;
-
-        case __GT_NOCREATE:
-          /* This case is backward from the other three.  __gen_tempname
-             succeeds if __xstat fails because the name does not exist.
-             Note the continue to bypass the common logic at the bottom
-             of the loop.  */
-          if (__lxstat64 (_STAT_VER, tmpl, &st) < 0)
-            {
-              if (errno == ENOENT)
-                {
-                  __set_errno (save_errno);
-                  return 0;
-                }
-              else
-                /* Give up now. */
-                return -1;
-            }
-          continue;
-
-        default:
-          assert (! "invalid KIND in __gen_tempname");
-          abort ();
-        }
-
+      fd = tryfunc (tmpl, args);
       if (fd >= 0)
         {
           __set_errno (save_errno);
@@ -304,3 +258,67 @@ __gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
   __set_errno (EEXIST);
   return -1;
 }
+
+static int
+try_file (char *tmpl, void *flags)
+{
+  int *openflags = flags;
+  return __open (tmpl,
+                 (*openflags & ~O_ACCMODE)
+                 | O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
+}
+
+static int
+try_dir (char *tmpl, void *flags _GL_UNUSED)
+{
+  return __mkdir (tmpl, S_IRUSR | S_IWUSR | S_IXUSR);
+}
+
+static int
+try_nocreate (char *tmpl, void *flags _GL_UNUSED)
+{
+  struct_stat64 st;
+
+  if (__lxstat64 (_STAT_VER, tmpl, &st) == 0)
+    __set_errno (EEXIST);
+  return errno == ENOENT ? 0 : -1;
+}
+
+/* Generate a temporary file name based on TMPL.  TMPL must match the
+   rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix).
+   The name constructed does not exist at the time of the call to
+   __gen_tempname.  TMPL is overwritten with the result.
+
+   KIND may be one of:
+   __GT_NOCREATE:       simply verify that the name does not exist
+                        at the time of the call.
+   __GT_FILE:           create the file using open(O_CREAT|O_EXCL)
+                        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. */
+int
+__gen_tempname (char *tmpl, int suffixlen, int flags, int kind)
+{
+  int (*tryfunc) (char *, void *);
+
+  switch (kind)
+    {
+    case __GT_FILE:
+      tryfunc = try_file;
+      break;
+
+    case __GT_DIR:
+      tryfunc = try_dir;
+      break;
+
+    case __GT_NOCREATE:
+      tryfunc = try_nocreate;
+      break;
+
+    default:
+      assert (! "invalid KIND in __gen_tempname");
+      abort ();
+    }
+  return __try_tempname (tmpl, suffixlen, &flags, tryfunc);
+}
index 333267d..be01c51 100644 (file)
@@ -1,6 +1,6 @@
 /* Create a temporary file or directory.
 
-   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #  define GT_NOCREATE 2
 # endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Generate a temporary file name based on TMPL.  TMPL must match the
    rules for mk[s]temp (i.e. end in "XXXXXX", possibly with a suffix).
    The name constructed does not exist at the time of the call to
    We use a clever algorithm to get hard-to-predict names. */
 extern int gen_tempname (char *tmpl, int suffixlen, int flags, int kind);
 
+/* Similar to gen_tempname, but TRYFUNC is called for each temporary
+   name to try.  If TRYFUNC returns a non-negative number, TRY_GEN_TEMPNAME
+   returns with this value.  Otherwise, if errno is set to EEXIST, another
+   name is tried, or else TRY_GEN_TEMPNAME returns -1. */
+extern int try_tempname (char *tmpl, int suffixlen, void *args,
+                         int (*tryfunc) (char *, void *));
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* GL_TEMPNAME_H */
diff --git a/lib/time-internal.h b/lib/time-internal.h
new file mode 100644 (file)
index 0000000..0635f28
--- /dev/null
@@ -0,0 +1,49 @@
+/* Time internal interface
+
+   Copyright 2015-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paul Eggert.  */
+
+/* A time zone rule.  */
+struct tm_zone
+{
+  /* More abbreviations, should they be needed.  Their TZ_IS_SET
+     members are zero.  */
+  struct tm_zone *next;
+
+#if HAVE_TZNAME && !HAVE_TM_ZONE
+  /* Copies of recent strings taken from tzname[0] and tzname[1].
+     The copies are in ABBRS, so that they survive tzset.  Null if unknown.  */
+  char *tzname_copy[2];
+#endif
+
+  /* If nonzero, the rule represents the TZ environment variable set
+     to the first "abbreviation" (this may be the empty string).
+     Otherwise, it represents an unset TZ.  */
+  char tz_is_set;
+
+  /* A sequence of null-terminated strings packed next to each other.
+     The strings are followed by an extra null byte.  If TZ_IS_SET,
+     there must be at least one string and the first string (which is
+     actually a TZ environment value value) may be empty.  Otherwise
+     all strings must be nonempty.
+
+     Abbreviations are stored here because otherwise the values of
+     tm_zone and/or tzname would be dead after changing TZ and calling
+     tzset.  Abbreviations never move once allocated, and are live
+     until tzfree is called.  */
+  char abbrs[FLEXIBLE_ARRAY_MEMBER];
+};
index 8ced794..865c114 100644 (file)
@@ -1,6 +1,6 @@
 /* A more-standard <time.h>.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* 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.  Also, Solaris 8 <time.h> eventually includes itself
+   symbols.  (However, skip this for MinGW as it treats __need_time_t
+   incompatibly.)  Also, Solaris 8 <time.h> eventually includes itself
    recursively; if that is happening, just include the system <time.h>
    without adding our own declarations.  */
-#if (defined __need_time_t || defined __need_clock_t \
-     || defined __need_timespec \
+#if (((defined __need_time_t || defined __need_clock_t \
+       || defined __need_timespec)                     \
+      && !defined __MINGW32__)                         \
      || defined _@GUARD_PREFIX@_TIME_H)
 
 # @INCLUDE_NEXT@ @NEXT_TIME_H@
 
 /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3).
    Or they define it with the wrong member names or define it in <sys/time.h>
-   (e.g., FreeBSD circa 1997).  Stock Mingw does not define it, but the
-   pthreads-win32 library defines it in <pthread.h>.  */
+   (e.g., FreeBSD circa 1997).  Stock Mingw prior to 3.0 does not define it,
+   but the pthreads-win32 library defines it in <pthread.h>.  */
 # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@
 #  if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 #   include <sys/time.h>
 #  elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
 #   include <pthread.h>
-/* The pthreads-win32 <pthread.h> also defines a couple of broken macros.  */
-#   undef asctime_r
-#   undef ctime_r
-#   undef gmtime_r
-#   undef localtime_r
-#   undef rand_r
-#   undef strtok_r
+#  elif @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
+#   include <unistd.h>
 #  else
 
 #   ifdef __cplusplus
@@ -187,6 +184,39 @@ _GL_CXXALIASWARN (gmtime_r);
 #  endif
 # endif
 
+/* Convert TIMER to RESULT, assuming local time and UTC respectively.  See
+   <http://www.opengroup.org/susv3xsh/localtime.html> and
+   <http://www.opengroup.org/susv3xsh/gmtime.html>.  */
+# if @GNULIB_GETTIMEOFDAY@
+#  if @REPLACE_LOCALTIME@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef localtime
+#    define localtime rpl_localtime
+#   endif
+_GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer)
+                                         _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer));
+#  else
+_GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer));
+#  endif
+_GL_CXXALIASWARN (localtime);
+# endif
+
+# if @GNULIB_GETTIMEOFDAY@
+#  if @REPLACE_GMTIME@
+#   if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#    undef gmtime
+#    define gmtime rpl_gmtime
+#   endif
+_GL_FUNCDECL_RPL (gmtime, struct tm *, (time_t const *__timer)
+                                       _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (gmtime, struct tm *, (time_t const *__timer));
+#  else
+_GL_CXXALIAS_SYS (gmtime, struct tm *, (time_t const *__timer));
+#  endif
+_GL_CXXALIASWARN (gmtime);
+# endif
+
 /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store
    the resulting broken-down time into TM.  See
    <http://www.opengroup.org/susv3xsh/strptime.html>.  */
@@ -203,6 +233,25 @@ _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf,
 _GL_CXXALIASWARN (strptime);
 # endif
 
+# if defined _GNU_SOURCE && @GNULIB_TIME_RZ@ && ! @HAVE_TIMEZONE_T@
+typedef struct tm_zone *timezone_t;
+_GL_FUNCDECL_SYS (tzalloc, timezone_t, (char const *__name));
+_GL_CXXALIAS_SYS (tzalloc, timezone_t, (char const *__name));
+_GL_FUNCDECL_SYS (tzfree, void, (timezone_t __tz));
+_GL_CXXALIAS_SYS (tzfree, void, (timezone_t __tz));
+_GL_FUNCDECL_SYS (localtime_rz, struct tm *,
+                  (timezone_t __tz, time_t const *restrict __timer,
+                   struct tm *restrict __result) _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_SYS (localtime_rz, struct tm *,
+                  (timezone_t __tz, time_t const *restrict __timer,
+                   struct tm *restrict __result));
+_GL_FUNCDECL_SYS (mktime_z, time_t,
+                  (timezone_t __tz, struct tm *restrict __result)
+                  _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_SYS (mktime_z, time_t,
+                  (timezone_t __tz, struct tm *restrict __result));
+# endif
+
 /* Convert TM to a time_t value, assuming UTC.  */
 # if @GNULIB_TIMEGM@
 #  if @REPLACE_TIMEGM@
index 9866299..dc1e161 100644 (file)
@@ -1,6 +1,6 @@
 /* Reentrant time functions like localtime_r.
 
-   Copyright (C) 2003, 2006-2007, 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2010-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
diff --git a/lib/time_rz.c b/lib/time_rz.c
new file mode 100644 (file)
index 0000000..55b764e
--- /dev/null
@@ -0,0 +1,321 @@
+/* Time zone functions such as tzalloc and localtime_rz
+
+   Copyright 2015-2016 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+/* Written by Paul Eggert.  */
+
+/* Although this module is not thread-safe, any races should be fairly
+   rare and reasonably benign.  For complete thread-safety, use a C
+   library with a working timezone_t type, so that this module is not
+   needed.  */
+
+#include <config.h>
+
+#include <time.h>
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "time-internal.h"
+
+#if !HAVE_TZSET
+static void tzset (void) { }
+#endif
+
+/* The approximate size to use for small allocation requests.  This is
+   the largest "small" request for the GNU C library malloc.  */
+enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
+
+/* Minimum size of the ABBRS member of struct abbr.  ABBRS is larger
+   only in the unlikely case where an abbreviation longer than this is
+   used.  */
+enum { ABBR_SIZE_MIN = DEFAULT_MXFAST - offsetof (struct tm_zone, abbrs) };
+
+/* Magic cookie timezone_t value, for local time.  It differs from
+   NULL and from all other timezone_t values.  Only the address
+   matters; the pointer is never dereferenced.  */
+static timezone_t const local_tz = (timezone_t) 1;
+
+#if HAVE_TM_ZONE || HAVE_TZNAME
+
+/* Return true if the values A and B differ according to the rules for
+   tm_isdst: A and B differ if one is zero and the other positive.  */
+static bool
+isdst_differ (int a, int b)
+{
+  return !a != !b && 0 <= a && 0 <= b;
+}
+
+/* Return true if A and B are equal.  */
+static int
+equal_tm (const struct tm *a, const struct tm *b)
+{
+  return ! ((a->tm_sec ^ b->tm_sec)
+            | (a->tm_min ^ b->tm_min)
+            | (a->tm_hour ^ b->tm_hour)
+            | (a->tm_mday ^ b->tm_mday)
+            | (a->tm_mon ^ b->tm_mon)
+            | (a->tm_year ^ b->tm_year)
+            | isdst_differ (a->tm_isdst, b->tm_isdst));
+}
+
+#endif
+
+/* Copy to ABBRS the abbreviation at ABBR with size ABBR_SIZE (this
+   includes its trailing null byte).  Append an extra null byte to
+   mark the end of ABBRS.  */
+static void
+extend_abbrs (char *abbrs, char const *abbr, size_t abbr_size)
+{
+  memcpy (abbrs, abbr, abbr_size);
+  abbrs[abbr_size] = '\0';
+}
+
+/* Return a newly allocated time zone for NAME, or NULL on failure.
+   A null NAME stands for wall clock time (which is like unset TZ).  */
+timezone_t
+tzalloc (char const *name)
+{
+  size_t name_size = name ? strlen (name) + 1 : 0;
+  size_t abbr_size = name_size < ABBR_SIZE_MIN ? ABBR_SIZE_MIN : name_size + 1;
+  timezone_t tz = malloc (offsetof (struct tm_zone, abbrs) + abbr_size);
+  if (tz)
+    {
+      tz->next = NULL;
+#if HAVE_TZNAME && !HAVE_TM_ZONE
+      tz->tzname_copy[0] = tz->tzname_copy[1] = NULL;
+#endif
+      tz->tz_is_set = !!name;
+      tz->abbrs[0] = '\0';
+      if (name)
+        extend_abbrs (tz->abbrs, name, name_size);
+    }
+  return tz;
+}
+
+/* Save into TZ any nontrivial time zone abbreviation used by TM, and
+   update *TM (if HAVE_TM_ZONE) or *TZ (if !HAVE_TM_ZONE &&
+   HAVE_TZNAME) if they use the abbreviation.  Return true if
+   successful, false (setting errno) otherwise.  */
+static bool
+save_abbr (timezone_t tz, struct tm *tm)
+{
+#if HAVE_TM_ZONE || HAVE_TZNAME
+  char const *zone = NULL;
+  char *zone_copy = (char *) "";
+
+# if HAVE_TZNAME
+  int tzname_index = -1;
+# endif
+
+# if HAVE_TM_ZONE
+  zone = tm->tm_zone;
+# endif
+
+# if HAVE_TZNAME
+  if (! (zone && *zone) && 0 <= tm->tm_isdst)
+    {
+      tzname_index = tm->tm_isdst != 0;
+      zone = tzname[tzname_index];
+    }
+# endif
+
+  /* No need to replace null zones, or zones within the struct tm.  */
+  if (!zone || ((char *) tm <= zone && zone < (char *) (tm + 1)))
+    return true;
+
+  if (*zone)
+    {
+      zone_copy = tz->abbrs;
+
+      while (strcmp (zone_copy, zone) != 0)
+        {
+          if (! (*zone_copy || (zone_copy == tz->abbrs && tz->tz_is_set)))
+            {
+              size_t zone_size = strlen (zone) + 1;
+              if (zone_size < tz->abbrs + ABBR_SIZE_MIN - zone_copy)
+                extend_abbrs (zone_copy, zone, zone_size);
+              else
+                {
+                  tz = tz->next = tzalloc (zone);
+                  if (!tz)
+                    return false;
+                  tz->tz_is_set = 0;
+                  zone_copy = tz->abbrs;
+                }
+              break;
+            }
+
+          zone_copy += strlen (zone_copy) + 1;
+          if (!*zone_copy && tz->next)
+            {
+              tz = tz->next;
+              zone_copy = tz->abbrs;
+            }
+        }
+    }
+
+  /* Replace the zone name so that its lifetime matches that of TZ.  */
+# if HAVE_TM_ZONE
+  tm->tm_zone = zone_copy;
+# else
+  if (0 <= tzname_index)
+    tz->tzname_copy[tzname_index] = zone_copy;
+# endif
+#endif
+
+  return true;
+}
+
+/* Free a time zone.  */
+void
+tzfree (timezone_t tz)
+{
+  if (tz != local_tz)
+    while (tz)
+      {
+        timezone_t next = tz->next;
+        free (tz);
+        tz = next;
+      }
+}
+
+/* Get and set the TZ environment variable.  These functions can be
+   overridden by programs like Emacs that manage their own environment.  */
+
+#ifndef getenv_TZ
+static char *
+getenv_TZ (void)
+{
+  return getenv ("TZ");
+}
+#endif
+
+#ifndef setenv_TZ
+static int
+setenv_TZ (char const *tz)
+{
+  return tz ? setenv ("TZ", tz, 1) : unsetenv ("TZ");
+}
+#endif
+
+/* Change the environment to match the specified timezone_t value.
+   Return true if successful, false (setting errno) otherwise.  */
+static bool
+change_env (timezone_t tz)
+{
+  if (setenv_TZ (tz->tz_is_set ? tz->abbrs : NULL) != 0)
+    return false;
+  tzset ();
+  return true;
+}
+
+/* Temporarily set the time zone to TZ, which must not be null.
+   Return LOCAL_TZ if the time zone setting is already correct.
+   Otherwise return a newly allocated time zone representing the old
+   setting, or NULL (setting errno) on failure.  */
+static timezone_t
+set_tz (timezone_t tz)
+{
+  char *env_tz = getenv_TZ ();
+  if (env_tz
+      ? tz->tz_is_set && strcmp (tz->abbrs, env_tz) == 0
+      : !tz->tz_is_set)
+    return local_tz;
+  else
+    {
+      timezone_t old_tz = tzalloc (env_tz);
+      if (!old_tz)
+        return old_tz;
+      if (! change_env (tz))
+        {
+          int saved_errno = errno;
+          tzfree (old_tz);
+          errno = saved_errno;
+          return NULL;
+        }
+      return old_tz;
+    }
+}
+
+/* Restore an old setting returned by set_tz.  It must not be null.
+   Return true (preserving errno) if successful, false (setting errno)
+   otherwise.  */
+static bool
+revert_tz (timezone_t tz)
+{
+  if (tz == local_tz)
+    return true;
+  else
+    {
+      int saved_errno = errno;
+      bool ok = change_env (tz);
+      if (!ok)
+        saved_errno = errno;
+      tzfree (tz);
+      errno = saved_errno;
+      return ok;
+    }
+}
+
+/* Use time zone TZ to compute localtime_r (T, TM).  */
+struct tm *
+localtime_rz (timezone_t tz, time_t const *t, struct tm *tm)
+{
+  if (!tz)
+    return gmtime_r (t, tm);
+  else
+    {
+      timezone_t old_tz = set_tz (tz);
+      if (old_tz)
+        {
+          bool abbr_saved = localtime_r (t, tm) && save_abbr (tz, tm);
+          if (revert_tz (old_tz) && abbr_saved)
+            return tm;
+        }
+      return NULL;
+    }
+}
+
+/* Use time zone TZ to compute mktime (TM).  */
+time_t
+mktime_z (timezone_t tz, struct tm *tm)
+{
+  if (!tz)
+    return timegm (tm);
+  else
+    {
+      timezone_t old_tz = set_tz (tz);
+      if (old_tz)
+        {
+          time_t t = mktime (tm);
+#if HAVE_TM_ZONE || HAVE_TZNAME
+          time_t badtime = -1;
+          struct tm tm_1;
+          if ((t != badtime
+               || (localtime_r (&t, &tm_1) && equal_tm (tm, &tm_1)))
+              && !save_abbr (tz, tm))
+            t = badtime;
+#endif
+          if (revert_tz (old_tz))
+            return t;
+        }
+      return -1;
+    }
+}
diff --git a/lib/timegm.c b/lib/timegm.c
new file mode 100644 (file)
index 0000000..bf61244
--- /dev/null
@@ -0,0 +1,40 @@
+/* Convert UTC calendar time to simple time.  Like mktime but assumes UTC.
+
+   Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2016 Free Software
+   Foundation, Inc.  This file is part of the GNU C Library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+#include <time.h>
+
+#ifdef _LIBC
+typedef time_t mktime_offset_t;
+#else
+# undef __gmtime_r
+# define __gmtime_r gmtime_r
+# define __mktime_internal mktime_internal
+# include "mktime-internal.h"
+#endif
+
+time_t
+timegm (struct tm *tmp)
+{
+  static mktime_offset_t gmtime_offset;
+  tmp->tm_isdst = 0;
+  return __mktime_internal (tmp, __gmtime_r, &gmtime_offset);
+}
index d665e6c..601394b 100644 (file)
@@ -1,6 +1,6 @@
 /* timespec -- System time interface
 
-   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2013 Free Software
+   Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
 
 # include <time.h>
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_TIMESPEC_INLINE
 # define _GL_TIMESPEC_INLINE _GL_INLINE
 #endif
 
+/* Resolution of timespec time stamps (in units per second), and log
+   base 10 of the resolution.  */
+
+enum { TIMESPEC_RESOLUTION = 1000000000 };
+enum { LOG10_TIMESPEC_RESOLUTION = 9 };
+
+/* Return a timespec with seconds S and nanoseconds NS.  */
+
+_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 negative, zero, positive if A < B, A == B, A > B, respectively.
 
    For each time stamp T, this code assumes that either:
@@ -54,7 +74,7 @@ _GL_INLINE_HEADER_BEGIN
 
    The (int) cast avoids a gcc -Wconversion warning.  */
 
-_GL_TIMESPEC_INLINE int
+_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
 timespec_cmp (struct timespec a, struct timespec b)
 {
   return (a.tv_sec < b.tv_sec ? -1
@@ -64,7 +84,7 @@ timespec_cmp (struct timespec a, struct timespec b)
 
 /* Return -1, 0, 1, depending on the sign of A.  A.tv_nsec must be
    nonnegative.  */
-_GL_TIMESPEC_INLINE int
+_GL_TIMESPEC_INLINE int _GL_ATTRIBUTE_PURE
 timespec_sign (struct timespec a)
 {
   return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
index 9581f51..b2e43c5 100644 (file)
@@ -1,5 +1,5 @@
 /* Removes leading and/or trailing whitespaces
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -31,7 +31,7 @@
 #include "xalloc.h"
 
 /* Use this to suppress gcc's "...may be used before initialized" warnings. */
-#ifdef lint
+#if defined GCC_LINT || defined lint
 # define IF_LINT(Code) Code
 #else
 # define IF_LINT(Code) /* empty */
index ab0caa1..01c22f2 100644 (file)
@@ -1,5 +1,5 @@
 /* Removes leading and/or trailing whitespaces
-   Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 6c6a8e2..72bad1c 100644 (file)
@@ -1,3 +1,4 @@
 #include <config.h>
 #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE
 #include "unistd.h"
+typedef int dummy;
index 2ea9af4..c3af07a 100644 (file)
@@ -1,5 +1,5 @@
 /* Substitute for and wrapper around <unistd.h>.
-   Copyright (C) 2003-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003-2016 Free Software Foundation, Inc.
 
    This 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
 @PRAGMA_COLUMNS@
 
+#ifdef _GL_INCLUDING_UNISTD_H
+/* Special invocation convention:
+   - On Mac OS X 10.3.9 we have a sequence of nested includes
+     <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h>
+     In this situation, the functions are not yet declared, therefore we cannot
+     provide the C++ aliases.  */
+
+#@INCLUDE_NEXT@ @NEXT_UNISTD_H@
+
+#else
+/* Normal invocation convention.  */
+
 /* The include_next requires a split double-inclusion guard.  */
 #if @HAVE_UNISTD_H@
+# define _GL_INCLUDING_UNISTD_H
 # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+# undef _GL_INCLUDING_UNISTD_H
 #endif
 
 /* Get all possible declarations of gethostname().  */
 # include <getopt.h>
 #endif
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef _GL_UNISTD_INLINE
 # define _GL_UNISTD_INLINE _GL_INLINE
@@ -384,6 +401,12 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - "
 /* Set of environment variables and values.  An array of strings of the form
    "VARIABLE=VALUE", terminated with a NULL.  */
 #  if defined __APPLE__ && defined __MACH__
+#   include <TargetConditionals.h>
+#   if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
+#    define _GL_USE_CRT_EXTERNS
+#   endif
+#  endif
+#  ifdef _GL_USE_CRT_EXTERNS
 #   include <crt_externs.h>
 #   define environ (*_NSGetEnviron ())
 #  else
@@ -651,10 +674,19 @@ _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
 #if @GNULIB_GETDTABLESIZE@
 /* Return the maximum number of file descriptors in the current process.
    In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
-# if !@HAVE_GETDTABLESIZE@
+# if @REPLACE_GETDTABLESIZE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef getdtablesize
+#   define getdtablesize rpl_getdtablesize
+#  endif
+_GL_FUNCDECL_RPL (getdtablesize, int, (void));
+_GL_CXXALIAS_RPL (getdtablesize, int, (void));
+# else
+#  if !@HAVE_GETDTABLESIZE@
 _GL_FUNCDECL_SYS (getdtablesize, int, (void));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (getdtablesize, int, (void));
+# endif
 _GL_CXXALIASWARN (getdtablesize);
 #elif defined GNULIB_POSIXCHECK
 # undef getdtablesize
@@ -1261,13 +1293,24 @@ _GL_WARN_ON_USE (readlink, "readlink is unportable - "
 
 
 #if @GNULIB_READLINKAT@
-# if !@HAVE_READLINKAT@
+# if @REPLACE_READLINKAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define readlinkat rpl_readlinkat
+#  endif
+_GL_FUNCDECL_RPL (readlinkat, ssize_t,
+                  (int fd, char const *file, char *buf, size_t len)
+                  _GL_ARG_NONNULL ((2, 3)));
+_GL_CXXALIAS_RPL (readlinkat, ssize_t,
+                  (int fd, char const *file, char *buf, size_t len));
+# else
+#  if !@HAVE_READLINKAT@
 _GL_FUNCDECL_SYS (readlinkat, ssize_t,
                   (int fd, char const *file, char *buf, size_t len)
                   _GL_ARG_NONNULL ((2, 3)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (readlinkat, ssize_t,
                   (int fd, char const *file, char *buf, size_t len));
+# endif
 _GL_CXXALIASWARN (readlinkat);
 #elif defined GNULIB_POSIXCHECK
 # undef readlinkat
@@ -1381,13 +1424,25 @@ _GL_WARN_ON_USE (symlink, "symlink is not portable - "
 
 
 #if @GNULIB_SYMLINKAT@
-# if !@HAVE_SYMLINKAT@
+# if @REPLACE_SYMLINKAT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   undef symlinkat
+#   define symlinkat rpl_symlinkat
+#  endif
+_GL_FUNCDECL_RPL (symlinkat, int,
+                  (char const *contents, int fd, char const *file)
+                  _GL_ARG_NONNULL ((1, 3)));
+_GL_CXXALIAS_RPL (symlinkat, int,
+                  (char const *contents, int fd, char const *file));
+# else
+#  if !@HAVE_SYMLINKAT@
 _GL_FUNCDECL_SYS (symlinkat, int,
                   (char const *contents, int fd, char const *file)
                   _GL_ARG_NONNULL ((1, 3)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (symlinkat, int,
                   (char const *contents, int fd, char const *file));
+# endif
 _GL_CXXALIASWARN (symlinkat);
 #elif defined GNULIB_POSIXCHECK
 # undef symlinkat
@@ -1527,4 +1582,5 @@ _GL_CXXALIASWARN (write);
 _GL_INLINE_HEADER_END
 
 #endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _GL_INCLUDING_UNISTD_H */
 #endif /* _@GUARD_PREFIX@_UNISTD_H */
index 980b4bb..70aa9cb 100644 (file)
@@ -1,5 +1,5 @@
 /* Elementary Unicode string functions.
-   Copyright (C) 2001-2002, 2005-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 72cab8d..48f9ca3 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-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2001.
 
    This program is free software: you can redistribute it and/or modify it
index 47c2e88..d5ff1d6 100644 (file)
@@ -1,5 +1,5 @@
 /* Conversion UCS-4 to UTF-8.
-   Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2006-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 1932a2b..419a6b4 100644 (file)
@@ -1,5 +1,5 @@
 /* Store a character in UTF-8 string.
-   Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 06eef05..c6ca0ba 100644 (file)
@@ -1,5 +1,5 @@
 /* Elementary types and macros for the GNU UniString library.
-   Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published
index 8931cc9..0ab6d25 100644 (file)
@@ -1,5 +1,5 @@
 /* Display width functions.
-   Copyright (C) 2001-2002, 2005, 2007, 2009-2013 Free Software Foundation,
+   Copyright (C) 2001-2002, 2005, 2007, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify it
index 11b14df..0eac6fe 100644 (file)
@@ -1,5 +1,5 @@
 /* Test for CJK encoding.
-   Copyright (C) 2001-2002, 2005-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2005-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
index 173d087..bd3b3fc 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine display width of Unicode character.
-   Copyright (C) 2001-2002, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2002, 2006-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2002.
 
    This program is free software: you can redistribute it and/or modify it
@@ -32,7 +32,7 @@
  * - Zero width characters; generated from
  *   "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
  */
-static const unsigned char nonspacing_table_data[27*64] = {
+static const unsigned char nonspacing_table_data[36*64] = {
   /* 0x0000-0x01ff */
   0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
@@ -61,7 +61,7 @@ static const unsigned char nonspacing_table_data[27*64] = {
   0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
   0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
   /* 0x0600-0x07ff */
-  0x0f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+  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 */
@@ -73,7 +73,7 @@ static const unsigned char nonspacing_table_data[27*64] = {
   0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
   0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
+  0x00, 0x00, 0x00, 0x00, 0xf8, 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 */
@@ -88,11 +88,11 @@ static const unsigned char nonspacing_table_data[27*64] = {
   0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
   0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
   /* 0x0c00-0x0dff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
   0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+  0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
   0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
+  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 */
@@ -133,7 +133,7 @@ static const unsigned char nonspacing_table_data[27*64] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
   0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
   /* 0x1800-0x19ff */
-  0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+  0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
@@ -142,26 +142,26 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+  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, 0x00, 0x00, /* 0x1a80-0x1abf */
+  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, 0x03, 0x00, 0x00, /* 0x1b80-0x1bbf */
+  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, 0x00, 0x00, /* 0x1cc0-0x1cff */
+  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, 0x7f, 0x00, 0x00, 0xf0, /* 0x1dc0-0x1dff */
+  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, /* 0x1dc0-0x1dff */
   /* 0x2000-0x21ff */
   0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
-  0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
+  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 */
@@ -178,7 +178,7 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */
+  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 */
@@ -188,8 +188,8 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0x07, 0x30, /* 0xa640-0xa67f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
+  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 */
@@ -203,12 +203,12 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+  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, 0x00, /* 0xaa40-0xaa7f */
+  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, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */
+  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 */
@@ -223,7 +223,7 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0x7f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */
+  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 */
@@ -240,24 +240,87 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+  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, 0x00, /* 0x11040-0x1107f */
+  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 */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11100-0x1113f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11140-0x1117f */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11180-0x111bf */
-  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
+  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, 0x00, /* 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, 0x00, /* 0x11400-0x1143f */
+  0x00, 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 */
+  /* 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 */
@@ -275,9 +338,27 @@ static const unsigned char nonspacing_table_data[27*64] = {
   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 */
+  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 */
+  /* 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 */
+  0x00, 0x00, 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[240] = {
+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 */
@@ -294,20 +375,21 @@ static const signed char nonspacing_table_ind[240] = {
   -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, -1, -1, -1, -1, 23, -1, -1, /* 0x10000-0x10fff */
-  24, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+  22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */
+  25, 26, 27, 28, -1, -1, -1, -1, /* 0x11000-0x11fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
-  -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */
+  -1, -1, -1, -1, -1, 29, -1, 30, /* 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, -1, -1, /* 0x1b000-0x1bfff */
+  -1, -1, -1, -1, -1, -1, 31, -1, /* 0x1b000-0x1bfff */
   -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
-  25, 26, -1, -1, -1, -1, -1, -1  /* 0x1d000-0x1dfff */
+  32, 33, -1, -1, -1, 34, -1, -1, /* 0x1d000-0x1dfff */
+  -1, -1, -1, -1, 35, -1, -1, -1  /* 0x1e000-0x1efff */
 };
 
 /* Determine number of column positions required for UC.  */
@@ -315,7 +397,7 @@ int
 uc_width (ucs4_t uc, const char *encoding)
 {
   /* Test for non-spacing or control character.  */
-  if ((uc >> 9) < 240)
+  if ((uc >> 9) < 248)
     {
       int ind = nonspacing_table_ind[uc >> 9];
       if (ind >= 0)
index df3e139..c0ece50 100644 (file)
@@ -1,6 +1,6 @@
 /* Prefer faster, non-thread-safe stdio functions if available.
 
-   Copyright (C) 2001-2004, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
similarity index 97%
rename from gnulib-tests/unsetenv.c
rename to lib/unsetenv.c
index c58c82f..8368744 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995-2002, 2005-2013 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1995-2002, 2005-2016 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    This program is free software: you can redistribute it and/or modify
index 8fdab32..de8965f 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 1999, 2002-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* GCC >= 4.0 with -Wall emits unjustified "... may be used uninitialized"
    warnings in this file.  Use -Dlint to suppress them.  */
-#ifdef lint
+#if defined GCC_LINT || defined lint
 # define IF_LINT(Code) Code
 #else
 # define IF_LINT(Code) /* empty */
@@ -1886,7 +1886,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
             else
               {
                 do
-                  result[length++] = (unsigned char) *cp++;
+                  result[length++] = *cp++;
                 while (--n > 0);
               }
           }
@@ -1957,15 +1957,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         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 = (unsigned int) (-arg);
+                            width = -width;
                           }
-                        else
-                          width = arg;
                       }
                     else
                       {
@@ -2073,8 +2072,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (has_width && width > characters
-                          && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2127,8 +2125,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (has_width && width > characters
-                          && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2201,8 +2198,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (has_width && width > characters
-                          && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2255,8 +2251,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (has_width && width > characters
-                          && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2329,8 +2324,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           characters = 0;
                         }
 
-                      if (has_width && width > characters
-                          && !(dp->flags & FLAG_LEFT))
+                      if (characters < width && !(dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2383,8 +2377,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       }
 # endif
 
-                      if (has_width && width > characters
-                          && (dp->flags & FLAG_LEFT))
+                      if (characters < width && (dp->flags & FLAG_LEFT))
                         {
                           size_t n = width - characters;
                           ENSURE_ALLOCATION (xsum (length, n));
@@ -2435,15 +2428,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         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 = (unsigned int) (-arg);
+                            width = -width;
                           }
-                        else
-                          width = arg;
                       }
                     else
                       {
@@ -2573,8 +2565,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                       characters = 0;
                     }
 
-                  if (has_width && width > characters
-                      && !(dp->flags & FLAG_LEFT))
+                  if (characters < width && !(dp->flags & FLAG_LEFT))
                     {
                       size_t n = width - characters;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2635,8 +2626,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         }
                     }
 
-                  if (has_width && width > characters
-                      && (dp->flags & FLAG_LEFT))
+                  if (characters < width && (dp->flags & FLAG_LEFT))
                     {
                       size_t n = width - characters;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2827,8 +2817,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     /* w doesn't matter.  */
                     w = 0;
 
-                  if (has_width && width > w
-                      && !(dp->flags & FLAG_LEFT))
+                  if (w < width && !(dp->flags & FLAG_LEFT))
                     {
                       size_t n = width - w;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2911,8 +2900,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                   length += tmpdst_len;
 #  endif
 
-                  if (has_width && width > w
-                      && (dp->flags & FLAG_LEFT))
+                  if (w < width && (dp->flags & FLAG_LEFT))
                     {
                       size_t n = width - w;
                       ENSURE_ALLOCATION (xsum (length, n));
@@ -2939,17 +2927,16 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
               {
                 arg_type type = a.arg[dp->arg_index].type;
                 int flags = dp->flags;
-                int has_width;
                 size_t width;
                 int has_precision;
                 size_t precision;
                 size_t tmp_length;
+                size_t count;
                 DCHAR_T tmpbuf[700];
                 DCHAR_T *tmp;
                 DCHAR_T *pad_ptr;
                 DCHAR_T *p;
 
-                has_width = 0;
                 width = 0;
                 if (dp->width_start != dp->width_end)
                   {
@@ -2960,15 +2947,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         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 = (unsigned int) (-arg);
+                            width = -width;
                           }
-                        else
-                          width = arg;
                       }
                     else
                       {
@@ -2978,7 +2964,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           width = xsum (xtimes (width, 10), *digitp++ - '0');
                         while (digitp != dp->width_end);
                       }
-                    has_width = 1;
                   }
 
                 has_precision = 0;
@@ -3354,11 +3339,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     abort ();
 # endif
                   }
+
                 /* The generated string now extends from tmp to p, with the
                    zero padding insertion point being at pad_ptr.  */
-                if (has_width && p - tmp < width)
+                count = p - tmp;
+
+                if (count < width)
                   {
-                    size_t pad = width - (p - tmp);
+                    size_t pad = width - count;
                     DCHAR_T *end = p + pad;
 
                     if (flags & FLAG_LEFT)
@@ -3391,28 +3379,26 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     p = end;
                   }
 
-                {
-                  size_t count = p - tmp;
+                count = p - tmp;
 
-                  if (count >= tmp_length)
-                    /* tmp_length was incorrectly calculated - fix the
-                       code above!  */
-                    abort ();
+                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);
+                /* Make room for the result.  */
+                if (count >= allocated - length)
+                  {
+                    size_t n = xsum (length, count);
 
-                      ENSURE_ALLOCATION (n);
-                    }
+                    ENSURE_ALLOCATION (n);
+                  }
 
-                  /* Append the result.  */
-                  memcpy (result + length, tmp, count * sizeof (DCHAR_T));
-                  if (tmp != tmpbuf)
-                    free (tmp);
-                  length += count;
-                }
+                /* Append the result.  */
+                memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+                if (tmp != tmpbuf)
+                  free (tmp);
+                length += count;
               }
 #endif
 #if (NEED_PRINTF_INFINITE_DOUBLE || NEED_PRINTF_DOUBLE || NEED_PRINTF_INFINITE_LONG_DOUBLE || NEED_PRINTF_LONG_DOUBLE) && !defined IN_LIBINTL
@@ -3446,8 +3432,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 arg_type type = a.arg[dp->arg_index].type;
 # endif
                 int flags = dp->flags;
-                int has_width;
                 size_t width;
+                size_t count;
                 int has_precision;
                 size_t precision;
                 size_t tmp_length;
@@ -3456,7 +3442,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 DCHAR_T *pad_ptr;
                 DCHAR_T *p;
 
-                has_width = 0;
                 width = 0;
                 if (dp->width_start != dp->width_end)
                   {
@@ -3467,15 +3452,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         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 = (unsigned int) (-arg);
+                            width = -width;
                           }
-                        else
-                          width = arg;
                       }
                     else
                       {
@@ -3485,7 +3469,6 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           width = xsum (xtimes (width, 10), *digitp++ - '0');
                         while (digitp != dp->width_end);
                       }
-                    has_width = 1;
                   }
 
                 has_precision = 0;
@@ -3925,9 +3908,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                            digits without trailing zeroes.  */
                                         if (exponent >= 0)
                                           {
-                                            size_t count = exponent + 1;
+                                            size_t ecount = exponent + 1;
                                             /* Note: count <= precision = ndigits.  */
-                                            for (; count > 0; count--)
+                                            for (; ecount > 0; ecount--)
                                               *p++ = digits[--ndigits];
                                             if ((flags & FLAG_ALT) || ndigits > nzeroes)
                                               {
@@ -3941,10 +3924,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                           }
                                         else
                                           {
-                                            size_t count = -exponent - 1;
+                                            size_t ecount = -exponent - 1;
                                             *p++ = '0';
                                             *p++ = decimal_point_char ();
-                                            for (; count > 0; count--)
+                                            for (; ecount > 0; ecount--)
                                               *p++ = '0';
                                             while (ndigits > nzeroes)
                                               {
@@ -4395,9 +4378,9 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                            digits without trailing zeroes.  */
                                         if (exponent >= 0)
                                           {
-                                            size_t count = exponent + 1;
-                                            /* Note: count <= precision = ndigits.  */
-                                            for (; count > 0; count--)
+                                            size_t ecount = exponent + 1;
+                                            /* Note: ecount <= precision = ndigits.  */
+                                            for (; ecount > 0; ecount--)
                                               *p++ = digits[--ndigits];
                                             if ((flags & FLAG_ALT) || ndigits > nzeroes)
                                               {
@@ -4411,10 +4394,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                           }
                                         else
                                           {
-                                            size_t count = -exponent - 1;
+                                            size_t ecount = -exponent - 1;
                                             *p++ = '0';
                                             *p++ = decimal_point_char ();
-                                            for (; count > 0; count--)
+                                            for (; ecount > 0; ecount--)
                                               *p++ = '0';
                                             while (ndigits > nzeroes)
                                               {
@@ -4542,9 +4525,11 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
 
                 /* The generated string now extends from tmp to p, with the
                    zero padding insertion point being at pad_ptr.  */
-                if (has_width && p - tmp < width)
+                count = p - tmp;
+
+                if (count < width)
                   {
-                    size_t pad = width - (p - tmp);
+                    size_t pad = width - count;
                     DCHAR_T *end = p + pad;
 
                     if (flags & FLAG_LEFT)
@@ -4577,36 +4562,36 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                     p = end;
                   }
 
-                {
-                  size_t count = p - tmp;
+                count = p - tmp;
 
-                  if (count >= tmp_length)
-                    /* tmp_length was incorrectly calculated - fix the
-                       code above!  */
-                    abort ();
+                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);
+                /* Make room for the result.  */
+                if (count >= allocated - length)
+                  {
+                    size_t n = xsum (length, count);
 
-                      ENSURE_ALLOCATION (n);
-                    }
+                    ENSURE_ALLOCATION (n);
+                  }
 
-                  /* Append the result.  */
-                  memcpy (result + length, tmp, count * sizeof (DCHAR_T));
-                  if (tmp != tmpbuf)
-                    free (tmp);
-                  length += count;
-                }
+                /* Append the result.  */
+                memcpy (result + length, tmp, count * sizeof (DCHAR_T));
+                if (tmp != tmpbuf)
+                  free (tmp);
+                length += count;
               }
 #endif
             else
               {
                 arg_type type = a.arg[dp->arg_index].type;
                 int flags = dp->flags;
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !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 || !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 || NEED_PRINTF_UNBOUNDED_PRECISION
@@ -4635,8 +4620,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                 TCHAR_T *tmp;
 #endif
 
-#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !DCHAR_IS_TCHAR || ENABLE_UNISTDIO || NEED_PRINTF_FLAG_LEFTADJUST || NEED_PRINTF_FLAG_ZERO || NEED_PRINTF_UNBOUNDED_PRECISION
+#if !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 || !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)
                   {
@@ -4647,15 +4634,14 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         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 = (unsigned int) (-arg);
+                            width = -width;
                           }
-                        else
-                          width = arg;
                       }
                     else
                       {
@@ -4665,7 +4651,9 @@ 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
                     has_width = 1;
+#endif
                   }
 #endif
 
@@ -4805,7 +4793,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           {
                             const FCHAR_T *mp = dp->width_start;
                             do
-                              *fbp++ = (unsigned char) *mp++;
+                              *fbp++ = *mp++;
                             while (--n > 0);
                           }
                       }
@@ -4826,7 +4814,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                           {
                             const FCHAR_T *mp = dp->precision_start;
                             do
-                              *fbp++ = (unsigned char) *mp++;
+                              *fbp++ = *mp++;
                             while (--n > 0);
                           }
                       }
@@ -5153,7 +5141,8 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                                 size_t tmp_length =
                                   MAX_ROOM_NEEDED (&a, dp->arg_index,
                                                    dp->conversion, type, flags,
-                                                   width, has_precision,
+                                                   width,
+                                                   has_precision,
                                                    precision, pad_ourselves);
 
                                 if (maxlen < tmp_length)
@@ -5190,18 +5179,21 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                         /* SNPRINTF or sprintf failed.  Save and use the errno
                            that it has set, if any.  */
                         int saved_errno = errno;
+                        if (saved_errno == 0)
+                          {
+                            if (dp->conversion == 'c' || dp->conversion == 's')
+                              saved_errno = EILSEQ;
+                            else
+                              saved_errno = EINVAL;
+                          }
 
                         if (!(result == resultbuf || result == NULL))
                           free (result);
                         if (buf_malloced != NULL)
                           free (buf_malloced);
                         CLEANUP ();
-                        errno =
-                          (saved_errno != 0
-                           ? saved_errno
-                           : (dp->conversion == 'c' || dp->conversion == 's'
-                              ? EILSEQ
-                              : EINVAL));
+
+                        errno = saved_errno;
                         return NULL;
                       }
 
@@ -5390,7 +5382,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
                             tmpsrc += count;
                             tmpdst += count;
                             for (n = count; n > 0; n--)
-                              *--tmpdst = (unsigned char) *--tmpsrc;
+                              *--tmpdst = *--tmpsrc;
                           }
                       }
 #endif
index 7658f50..8e9d84f 100644 (file)
@@ -1,5 +1,5 @@
 /* vsprintf with automatic memory allocation.
-   Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2007-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d0d4a11..a5dc1be 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to strings.
-   Copyright (C) 1999, 2002, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cb8e90b..5c8381d 100644 (file)
@@ -1,6 +1,6 @@
 /* Compile-time assert-like macros.
 
-   Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2005-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
 /* Written by Paul Eggert, Bruno Haible, and Jim Meyering.  */
 
 #ifndef _GL_VERIFY_H
-# define _GL_VERIFY_H
+#define _GL_VERIFY_H
 
 
 /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
    Use this only with GCC.  If we were willing to slow 'configure'
    down we could also use it with other compilers, but since this
    affects only the quality of diagnostics, why bother?  */
-# if (4 < __GNUC__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !defined __cplusplus
-#  define _GL_HAVE__STATIC_ASSERT 1
-# endif
+#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
+     && (201112L <= __STDC_VERSION__  || !defined __STRICT_ANSI__) \
+     && !defined __cplusplus)
+# define _GL_HAVE__STATIC_ASSERT 1
+#endif
 /* The condition (99 < __GNUC__) is temporary, until we know about the
    first G++ release that supports static_assert.  */
-# if (99 < __GNUC__) && defined __cplusplus
-#  define _GL_HAVE_STATIC_ASSERT 1
-# endif
+#if (99 < __GNUC__) && defined __cplusplus
+# define _GL_HAVE_STATIC_ASSERT 1
+#endif
+
+/* FreeBSD 9.1 <sys/cdefs.h>, included by <stddef.h> and lots of other
+   system headers, defines a conflicting _Static_assert that is no
+   better than ours; override it.  */
+#ifndef _GL_HAVE_STATIC_ASSERT
+# include <stddef.h>
+# undef _Static_assert
+#endif
 
 /* Each of these macros verifies that its argument R is nonzero.  To
    be portable, R should be an integer constant expression.  Unlike
      Use a template type to work around the problem.  */
 
 /* Concatenate two preprocessor tokens.  */
-# define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
-# define _GL_CONCAT0(x, y) x##y
+#define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
+#define _GL_CONCAT0(x, y) x##y
 
 /* _GL_COUNTER is an integer, preferably one that changes each time we
    use it.  Use __COUNTER__ if it works, falling back on __LINE__
    otherwise.  __LINE__ isn't perfect, but it's better than a
    constant.  */
-# if defined __COUNTER__ && __COUNTER__ != __COUNTER__
-#  define _GL_COUNTER __COUNTER__
-# else
-#  define _GL_COUNTER __LINE__
-# endif
+#if defined __COUNTER__ && __COUNTER__ != __COUNTER__
+# define _GL_COUNTER __COUNTER__
+#else
+# define _GL_COUNTER __LINE__
+#endif
 
 /* Generate a symbol with the given prefix, making it unique if
    possible.  */
-# define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER)
+#define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER)
 
 /* Verify requirement R at compile-time, as an integer constant expression
    that returns 1.  If R is false, fail at compile-time, preferably
    with a diagnostic that includes the string-literal DIAGNOSTIC.  */
 
-# define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \
-    (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC)))
+#define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \
+   (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC)))
 
-# ifdef __cplusplus
-#  if !GNULIB_defined_struct__gl_verify_type
+#ifdef __cplusplus
+# if !GNULIB_defined_struct__gl_verify_type
 template <int w>
   struct _gl_verify_type {
     unsigned int _gl_verify_error_if_negative: w;
   };
-#   define GNULIB_defined_struct__gl_verify_type 1
-#  endif
-#  define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
-    _gl_verify_type<(R) ? 1 : -1>
-# elif defined _GL_HAVE__STATIC_ASSERT
-#  define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
-     struct {                                   \
-       _Static_assert (R, DIAGNOSTIC);          \
-       int _gl_dummy;                          \
-     }
-# else
-#  define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
-     struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; }
+#  define GNULIB_defined_struct__gl_verify_type 1
 # endif
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    _gl_verify_type<(R) ? 1 : -1>
+#elif defined _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    struct {                                   \
+      _Static_assert (R, DIAGNOSTIC);          \
+      int _gl_dummy;                          \
+    }
+#else
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+    struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; }
+#endif
 
 /* Verify requirement R at compile-time, as a declaration without a
    trailing ';'.  If R is false, fail at compile-time, preferably
@@ -193,23 +203,23 @@ template <int w>
    Unfortunately, unlike C11, this implementation must appear as an
    ordinary declaration, and cannot appear inside struct { ... }.  */
 
-# ifdef _GL_HAVE__STATIC_ASSERT
-#  define _GL_VERIFY _Static_assert
-# else
-#  define _GL_VERIFY(R, DIAGNOSTIC)                                   \
-     extern int (*_GL_GENSYM (_gl_verify_function) (void))            \
-       [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
-# endif
+#ifdef _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY _Static_assert
+#else
+# define _GL_VERIFY(R, DIAGNOSTIC)                                    \
+    extern int (*_GL_GENSYM (_gl_verify_function) (void))             \
+      [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
+#endif
 
 /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h.  */
-# ifdef _GL_STATIC_ASSERT_H
-#  if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
-#   define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
-#  endif
-#  if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
-#   define static_assert _Static_assert /* C11 requires this #define.  */
-#  endif
+#ifdef _GL_STATIC_ASSERT_H
+# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
+#  define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
 # endif
+# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
+#  define static_assert _Static_assert /* C11 requires this #define.  */
+# endif
+#endif
 
 /* @assert.h omit start@  */
 
@@ -227,18 +237,42 @@ template <int w>
 
    verify_true is obsolescent; please use verify_expr instead.  */
 
-# define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
+#define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
 
 /* Verify requirement R at compile-time.  Return the value of the
    expression E.  */
 
-# define verify_expr(R, E) \
-    (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
+#define verify_expr(R, E) \
+   (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
 
 /* Verify requirement R at compile-time, as a declaration without a
    trailing ';'.  */
 
-# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+#define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
+
+/* Assume that R always holds.  This lets the compiler optimize
+   accordingly.  R should not have side-effects; it may or may not be
+   evaluated.  Behavior is undefined if R is false.  */
+
+#if (__has_builtin (__builtin_unreachable) \
+     || 4 < __GNUC__ + (5 <= __GNUC_MINOR__))
+# define assume(R) ((R) ? (void) 0 : __builtin_unreachable ())
+#elif 1200 <= _MSC_VER
+# define assume(R) __assume (R)
+#elif ((defined GCC_LINT || defined lint) \
+       && (__has_builtin (__builtin_trap) \
+           || 3 < __GNUC__ + (3 < __GNUC_MINOR__ + (4 <= __GNUC_PATCHLEVEL__))))
+  /* Doing it this way helps various packages when configured with
+     --enable-gcc-warnings, which compiles with -Dlint.  It's nicer
+     when 'assume' silences warnings even with older GCCs.  */
+# define assume(R) ((R) ? (void) 0 : __builtin_trap ())
+#else
+# define assume(R) ((void) (0 && (R)))
+#endif
 
 /* @assert.h omit end@  */
 
index e1c69da..baaebb6 100644 (file)
@@ -1,5 +1,5 @@
 /* Variable with FSF copyright information, for version-etc.
-   Copyright (C) 1999-2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2006, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b7d23ab..a9a0fdb 100644 (file)
@@ -1,5 +1,5 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@
 # define PACKAGE PACKAGE_TARNAME
 #endif
 
-enum { COPYRIGHT_YEAR = 2013 };
+enum { COPYRIGHT_YEAR = 2016 };
 
 /* The three functions below display the --version information the
    standard way.
index 6c3d084..1a5f603 100644 (file)
@@ -1,5 +1,5 @@
 /* Print --version and bug-reporting information in a consistent format.
-   Copyright (C) 1999, 2003, 2005, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2003, 2005, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b6e4362..755600f 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wchar.h>, for platforms that have issues.
 
-   Copyright (C) 2007-2013 Free Software Foundation, Inc.
+   Copyright (C) 2007-2016 Free Software Foundation, Inc.
 
    This 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
 @PRAGMA_COLUMNS@
 
-#if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H
+#if (((defined __need_mbstate_t || defined __need_wint_t)               \
+      && !defined __MINGW32__ && !defined __KLIBC__)                    \
+     || (defined __hpux                                                 \
+         && ((defined _INTTYPES_INCLUDED && !defined strtoimax)         \
+             || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H))               \
+     || defined _GL_ALREADY_INCLUDING_WCHAR_H)
 /* Special invocation convention:
-   - Inside glibc and uClibc header files.
+   - Inside glibc and uClibc header files, but not MinGW.
    - On HP-UX 11.00 we have a sequence of nested includes
      <wchar.h> -> <stdlib.h> -> <stdint.h>, and the latter includes <wchar.h>,
      once indirectly <stdint.h> -> <sys/types.h> -> <inttypes.h> -> <wchar.h>
@@ -440,6 +445,11 @@ _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t));
 #  if !@HAVE_DECL_WCWIDTH@
 /* wcwidth exists but is not declared.  */
 _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE);
+#  elif defined __KLIBC__
+/* On OS/2 kLIBC, wcwidth is a macro that expands to the name of a
+   static inline function.  The implementation of wcwidth in wcwidth.c
+   causes a "conflicting types" error. */
+#   undef wcwidth
 #  endif
 _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t));
 # endif
index da42809..b931ee9 100644 (file)
@@ -1,5 +1,5 @@
 /* Convert wide character to multibyte character.
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
    Written by Bruno Haible <bruno@clisp.org>, 2008.
 
    This program is free software: you can redistribute it and/or modify
index 0cd02d5..3431854 100644 (file)
@@ -1,6 +1,6 @@
 /* A substitute for ISO C99 <wctype.h>, for platforms that lack it.
 
-   Copyright (C) 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2016 Free Software Foundation, Inc.
 
    This 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 <wchar.h>
 #endif
 
+/* mingw has declarations of towupper and towlower in <ctype.h> as
+   well <wctype.h>.  Include <ctype.h> in advance to avoid rpl_ prefix
+   being added to the declarations.  */
+#ifdef __MINGW32__
+# include <ctype.h>
+#endif
+
 /* Include the original <wctype.h> if it exists.
    BeOS 5 has the functions but no <wctype.h>.  */
 /* The include_next requires a split double-inclusion guard.  */
@@ -54,6 +61,9 @@
 #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 253fcaa..b94fad0 100644 (file)
@@ -1,5 +1,5 @@
 /* Determine the number of screen columns needed for a character.
-   Copyright (C) 2006-2007, 2010-2013 Free Software Foundation, Inc.
+   Copyright (C) 2006-2007, 2010-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index daa403b..4c7994b 100644 (file)
@@ -1,6 +1,6 @@
 /* Report a memory allocation failure and exit.
 
-   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2013 Free Software
+   Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index a971c78..44f1644 100644 (file)
@@ -1,6 +1,6 @@
 /* xalloc-oversized.h -- memory allocation size checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef XALLOC_OVERSIZED_H_
-# define XALLOC_OVERSIZED_H_
+#define XALLOC_OVERSIZED_H_
 
-# include <stddef.h>
+#include <stddef.h>
 
-/* Return 1 if an array of N objects, each of size S, cannot exist due
-   to size arithmetic overflow.  S must be positive and N must be
-   nonnegative.  This is a macro, not a function, so that it
-   works correctly even when SIZE_MAX < N.
+/* Default for (non-Clang) compilers that lack __has_builtin.  */
+#ifndef __has_builtin
+# define __has_builtin(x) 0
+#endif
 
+/* True if N * S would overflow in a size calculation.
+   This expands to a constant expression if N and S are both constants.
    By gnulib convention, SIZE_MAX represents overflow in size
    calculations, so the conservative dividend to use here is
    SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
    sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
    exactly-SIZE_MAX allocations on such hosts; this avoids a test and
    branch when S is known to be 1.  */
-# define xalloc_oversized(n, s) \
+#define __xalloc_oversized(n, s) \
     ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
 
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+   to size arithmetic overflow.  S must be positive and N must be
+   nonnegative.  This is a macro, not a function, so that it
+   works correctly even when SIZE_MAX < N.  */
+
+/* GCC 7 __builtin_mul_overflow should easily compute this.  See:
+   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68120  */
+#if 7 <= __GNUC__
+# define xalloc_oversized(n, s) __builtin_mul_overflow (n, s, (size_t *) NULL)
+
+/* GCC 5 and Clang __builtin_mul_overflow needs a temporary, and
+   should be used only for non-constant operands, so that
+   xalloc_oversized is a constant expression if both arguments are.
+   Do not use this if pedantic, since pedantic GCC issues a diagnostic
+   for ({ ... }).  */
+#elif ((5 <= __GNUC__ \
+        || (__has_builtin (__builtin_mul_overflow) \
+            && __has_builtin (__builtin_constant_p))) \
+       && !__STRICT_ANSI__)
+# define xalloc_oversized(n, s) \
+   (__builtin_constant_p (n) && __builtin_constant_p (s) \
+    ? __xalloc_oversized (n, s) \
+    : ({ size_t __xalloc_size; __builtin_mul_overflow (n, s, &__xalloc_size); }))
+
+/* Other compilers use integer division; this may be slower but is
+   more portable.  */
+#else
+# define xalloc_oversized(n, s) __xalloc_oversized (n, s)
+#endif
+
 #endif /* !XALLOC_OVERSIZED_H_ */
index da7c4b6..a4fddbf 100644 (file)
@@ -1,6 +1,6 @@
 /* xalloc.h -- malloc with out-of-memory checking
 
-   Copyright (C) 1990-2000, 2003-2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2003-2004, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,9 @@
 
 #include "xalloc-oversized.h"
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef XALLOC_INLINE
 # define XALLOC_INLINE _GL_INLINE
@@ -38,7 +41,8 @@ extern "C" {
 # define _GL_ATTRIBUTE_MALLOC
 #endif
 
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+#if ! defined __clang__ && \
+    (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))
 # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
 #else
 # define _GL_ATTRIBUTE_ALLOC_SIZE(args)
@@ -61,7 +65,7 @@ void *xrealloc (void *p, size_t s)
       _GL_ATTRIBUTE_ALLOC_SIZE ((2));
 void *x2realloc (void *p, size_t *pn);
 void *xmemdup (void const *p, size_t s)
-      _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2));
+      _GL_ATTRIBUTE_ALLOC_SIZE ((2));
 char *xstrdup (char const *str)
       _GL_ATTRIBUTE_MALLOC;
 
@@ -119,10 +123,9 @@ xnrealloc (void *p, size_t n, size_t s)
 
 /* If P is null, allocate a block of at least *PN such objects;
    otherwise, reallocate P so that it contains more than *PN objects
-   each of S bytes.  *PN must be nonzero unless P is null, and S must
-   be nonzero.  Set *PN to the new number of objects, and return the
-   pointer to the new block.  *PN is never set to zero, and the
-   returned pointer is never null.
+   each of S bytes.  S must be nonzero.  Set *PN to the new number of
+   objects, and return the pointer to the new block.  *PN is never set
+   to zero, and the returned pointer is never null.
 
    Repeated reallocations are guaranteed to make progress, either by
    allocating an initial block with a nonzero size, or by allocating a
@@ -193,13 +196,13 @@ x2nrealloc (void *p, size_t *pn, size_t s)
     }
   else
     {
-      /* Set N = ceil (1.5 * N) so that progress is made if N == 1.
+      /* Set N = floor (1.5 * N) + 1 so that progress is made even if N == 0.
          Check for overflow, so that N * S stays in size_t range.
-         The check is slightly conservative, but an exact check isn't
+         The check may be slightly conservative, but an exact check isn't
          worth the trouble.  */
       if ((size_t) -1 / 3 * 2 / s <= n)
         xalloc_die ();
-      n += (n + 1) / 2;
+      n += n / 2 + 1;
     }
 
   *pn = n;
@@ -256,5 +259,6 @@ xmemdup (T const *p, size_t s)
 
 #endif
 
+_GL_INLINE_HEADER_END
 
 #endif /* !XALLOC_H_ */
index 1808b70..e9e83ef 100644 (file)
@@ -1,5 +1,5 @@
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006, 2009-2013 Free Software Foundation,
+   Copyright (C) 1999, 2002-2004, 2006, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index c7acbd1..c02843a 100644 (file)
@@ -1,5 +1,5 @@
-/* a wrapper for frepoen
-   Copyright (C) 2008-2013 Free Software Foundation, Inc.
+/* a wrapper for freopen
+   Copyright (C) 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 57e34b7..429b50d 100644 (file)
@@ -1,6 +1,6 @@
 /* xmalloc.c -- malloc with out of memory checking
 
-   Copyright (C) 1990-2000, 2002-2006, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 1990-2000, 2002-2006, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index cdf9f63..901f946 100644 (file)
@@ -1,6 +1,6 @@
 /* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage
 
-   Copyright (C) 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index da62be6..555c27d 100644 (file)
@@ -1,6 +1,6 @@
 /* Reading symbolic links without size limitation.
 
-   Copyright (C) 2001, 2003-2004, 2007, 2009-2013 Free Software Foundation,
+   Copyright (C) 2001, 2003-2004, 2007, 2009-2016 Free Software Foundation,
    Inc.
 
    This program is free software: you can redistribute it and/or modify
index 2922f35..202a87e 100644 (file)
@@ -1,6 +1,6 @@
 /* xsize.h -- Checked size_t computations.
 
-   Copyright (C) 2003, 2008-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2008-2016 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,6 +27,9 @@
 # include <stdint.h>
 #endif
 
+#ifndef _GL_INLINE_HEADER_BEGIN
+ #error "Please include config.h first."
+#endif
 _GL_INLINE_HEADER_BEGIN
 #ifndef XSIZE_INLINE
 # define XSIZE_INLINE _GL_INLINE
index fb8aad2..2dbee18 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion with out-of-memory checking.
-   Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible.
 
    This program is free software: you can redistribute it and/or modify
index 2b239e7..61e7c75 100644 (file)
@@ -1,5 +1,5 @@
 /* Charset conversion with out-of-memory checking.
-   Copyright (C) 2001-2004, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2007, 2009-2016 Free Software Foundation, Inc.
    Written by Bruno Haible and Simon Josefsson.
 
    This program is free software: you can redistribute it and/or modify
index eae92d0..3d605ef 100644 (file)
@@ -1,6 +1,6 @@
 /* Duplicate a bounded initial segment of a string, with out-of-memory
    checking.
-   Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2006-2007, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 59673b0..0d3021c 100644 (file)
@@ -1,6 +1,6 @@
 /* Duplicate a bounded initial segment of a string, with out-of-memory
    checking.
-   Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2009-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 688cef7..30b51cb 100644 (file)
@@ -1,6 +1,6 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2013 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 6f78572..c5b1692 100644 (file)
@@ -1,6 +1,6 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2013 Free Software
+   Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    need stderr defined if assertion checking is enabled.  */
 #include <stdio.h>
 
-#include <assert.h>
 #include <ctype.h>
 #include <errno.h>
 #include <limits.h>
 #include <stdlib.h>
 #include <string.h>
 
+#include "assure.h"
 #include "intprops.h"
 
 /* xstrtoll.c and xstrtoull.c, which include this file, require that
@@ -93,10 +93,12 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
   __strtol_t tmp;
   strtol_error err = LONGINT_OK;
 
-  assert (0 <= strtol_base && strtol_base <= 36);
+  assure (0 <= strtol_base && strtol_base <= 36);
 
   p = (ptr ? ptr : &t_ptr);
 
+  errno = 0;
+
   if (! TYPE_SIGNED (__strtol_t))
     {
       const char *q = s;
@@ -107,7 +109,6 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
         return LONGINT_INVALID;
     }
 
-  errno = 0;
   tmp = __strtol (s, p, strtol_base);
 
   if (*p == s)
@@ -147,8 +148,11 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
           return err | LONGINT_INVALID_SUFFIX_CHAR;
         }
 
-      if (strchr (valid_suffixes, '0'))
+      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':
+
           /* The "valid suffix" '0' is a special flag meaning that
              an optional second suffix is allowed, which can change
              the base.  A suffix "B" (e.g. "100MB") stands for a power
@@ -156,19 +160,20 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
              a power of 1024.  If no suffix (e.g. "100M"), assume
              power-of-1024.  */
 
-          switch (p[0][1])
-            {
-            case 'i':
-              if (p[0][2] == 'B')
-                suffixes += 2;
-              break;
-
-            case 'B':
-            case 'D': /* 'D' is obsolescent */
-              base = 1000;
-              suffixes++;
-              break;
-            }
+          if (strchr (valid_suffixes, '0'))
+            switch (p[0][1])
+              {
+              case 'i':
+                if (p[0][2] == 'B')
+                  suffixes += 2;
+                break;
+
+              case 'B':
+              case 'D': /* 'D' is obsolescent */
+                base = 1000;
+                suffixes++;
+                break;
+              }
         }
 
       switch (**p)
@@ -178,11 +183,14 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
           break;
 
         case 'B':
+          /* This obsolescent first suffix is distinct from the 'B'
+             second suffix above.  E.g., 'tar -L 1000B' means change
+             the tape after writing 1000 KiB of data.  */
           overflow = bkm_scale (&tmp, 1024);
           break;
 
         case 'c':
-          overflow = 0;
+          overflow = LONGINT_OK;
           break;
 
         case 'E': /* exa or exbi */
index 5354c87..6f51d6e 100644 (file)
@@ -1,6 +1,6 @@
 /* A more useful interface to strtol.
 
-   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2013 Free Software
+   Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2016 Free Software
    Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
index 702b5e6..9deaad0 100644 (file)
@@ -1,5 +1,5 @@
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 1999, 2002-2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002-2004, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index 1208fa1..d62d7b7 100644 (file)
@@ -1,5 +1,5 @@
 /* vasprintf and asprintf with out-of-memory checking.
-   Copyright (C) 2002-2004, 2006-2013 Free Software Foundation, Inc.
+   Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index d4ad759..bb37e32 100644 (file)
@@ -1,12 +1,28 @@
-# 00gnulib.m4 serial 2
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# 00gnulib.m4 serial 3
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl This file must be named something that sorts before all other
 dnl gnulib-provided .m4 files.  It is needed until such time as we can
-dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
+dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE and
+dnl m4_divert semantics.
+
+# Until autoconf 2.63, handling of the diversion stack required m4_init
+# to be called first; but this does not happen with aclocal.  Wrapping
+# the entire execution in another layer of the diversion stack fixes this.
+# Worse, prior to autoconf 2.62, m4_wrap depended on the underlying m4
+# for whether it was FIFO or LIFO; in order to properly balance with
+# m4_init, we need to undo our push just before anything wrapped within
+# the m4_init body.  The way to ensure this is to wrap both sides of
+# m4_init with a one-shot macro that does the pop at the right time.
+m4_ifndef([_m4_divert_diversion],
+[m4_divert_push([KILL])
+m4_define([gl_divert_fixup], [m4_divert_pop()m4_define([$0])])
+m4_define([m4_init],
+  [gl_divert_fixup()]m4_defn([m4_init])[gl_divert_fixup()])])
+
 
 # AC_DEFUN_ONCE([NAME], VALUE)
 # ----------------------------
diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4
new file mode 100644 (file)
index 0000000..7ffc38d
--- /dev/null
@@ -0,0 +1,102 @@
+# absolute-header.m4 serial 16
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Derek Price.
+
+# gl_ABSOLUTE_HEADER(HEADER1 HEADER2 ...)
+# ---------------------------------------
+# Find the absolute name of a header file, testing first if the header exists.
+# If the header were sys/inttypes.h, this macro would define
+# ABSOLUTE_SYS_INTTYPES_H to the '""' quoted absolute name of sys/inttypes.h
+# in config.h
+# (e.g. '#define ABSOLUTE_SYS_INTTYPES_H "///usr/include/sys/inttypes.h"').
+# The three "///" are to pacify Sun C 5.8, which otherwise would say
+# "warning: #include of /usr/include/... may be non-portable".
+# Use '""', not '<>', so that the /// cannot be confused with a C99 comment.
+# Note: This macro assumes that the header file is not empty after
+# preprocessing, i.e. it does not only define preprocessor macros but also
+# provides some type/enum definitions or function/variable declarations.
+AC_DEFUN([gl_ABSOLUTE_HEADER],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_PREPROC_REQUIRE()dnl
+dnl FIXME: gl_absolute_header and ac_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
+m4_foreach_w([gl_HEADER_NAME], [$1],
+  [AS_VAR_PUSHDEF([gl_absolute_header],
+                  [gl_cv_absolute_]m4_defn([gl_HEADER_NAME]))dnl
+  AC_CACHE_CHECK([absolute name of <]m4_defn([gl_HEADER_NAME])[>],
+    m4_defn([gl_absolute_header]),
+    [AS_VAR_PUSHDEF([ac_header_exists],
+                    [ac_cv_header_]m4_defn([gl_HEADER_NAME]))dnl
+    AC_CHECK_HEADERS_ONCE(m4_defn([gl_HEADER_NAME]))dnl
+    if test AS_VAR_GET(ac_header_exists) = yes; then
+      gl_ABSOLUTE_HEADER_ONE(m4_defn([gl_HEADER_NAME]))
+    fi
+    AS_VAR_POPDEF([ac_header_exists])dnl
+    ])dnl
+  AC_DEFINE_UNQUOTED(AS_TR_CPP([ABSOLUTE_]m4_defn([gl_HEADER_NAME])),
+                     ["AS_VAR_GET(gl_absolute_header)"],
+                     [Define this to an absolute name of <]m4_defn([gl_HEADER_NAME])[>.])
+  AS_VAR_POPDEF([gl_absolute_header])dnl
+])dnl
+])# gl_ABSOLUTE_HEADER
+
+# gl_ABSOLUTE_HEADER_ONE(HEADER)
+# ------------------------------
+# Like gl_ABSOLUTE_HEADER, except that:
+#   - it assumes that the header exists,
+#   - it uses the current CPPFLAGS,
+#   - it does not cache the result,
+#   - it is silent.
+AC_DEFUN([gl_ABSOLUTE_HEADER_ONE],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_LANG_CONFTEST([AC_LANG_SOURCE([[#include <]]m4_dquote([$1])[[>]])])
+  dnl AIX "xlc -E" and "cc -E" omit #line directives for header files
+  dnl that contain only a #include of other header files and no
+  dnl non-comment tokens of their own. This leads to a failure to
+  dnl detect the absolute name of <dirent.h>, <signal.h>, <poll.h>
+  dnl and others. The workaround is to force preservation of comments
+  dnl through option -C. This ensures all necessary #line directives
+  dnl are present. GCC supports option -C as well.
+  case "$host_os" in
+    aix*) gl_absname_cpp="$ac_cpp -C" ;;
+    *)    gl_absname_cpp="$ac_cpp" ;;
+  esac
+changequote(,)
+  case "$host_os" in
+    mingw*)
+      dnl For the sake of native Windows compilers (excluding gcc),
+      dnl treat backslash as a directory separator, like /.
+      dnl Actually, these compilers use a double-backslash as
+      dnl directory separator, inside the
+      dnl   # line "filename"
+      dnl directives.
+      gl_dirsep_regex='[/\\]'
+      ;;
+    *)
+      gl_dirsep_regex='\/'
+      ;;
+  esac
+  dnl A sed expression that turns a string into a basic regular
+  dnl expression, for use within "/.../".
+  gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+  gl_header_literal_regex=`echo '$1' \
+                           | sed -e "$gl_make_literal_regex_sed"`
+  gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+      s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+      s|^/[^/]|//&|
+      p
+      q
+    }'
+changequote([,])
+  dnl eval is necessary to expand gl_absname_cpp.
+  dnl Ultrix and Pyramid sh refuse to redirect output of eval,
+  dnl so use subshell.
+  AS_VAR_SET([gl_cv_absolute_]AS_TR_SH([[$1]]),
+[`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
+  sed -n "$gl_absolute_header_sed"`])
+])
index 270abd0..2382ff1 100644 (file)
@@ -1,5 +1,5 @@
 # alloca.m4 serial 14
-dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2016 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/arpa_inet_h.m4 b/m4/arpa_inet_h.m4
new file mode 100644 (file)
index 0000000..5387f28
--- /dev/null
@@ -0,0 +1,57 @@
+# arpa_inet_h.m4 serial 13
+dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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 Simon Josefsson and Bruno Haible
+
+AC_DEFUN([gl_HEADER_ARPA_INET],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
+
+  AC_CHECK_HEADERS_ONCE([arpa/inet.h])
+  if test $ac_cv_header_arpa_inet_h = yes; then
+    HAVE_ARPA_INET_H=1
+  else
+    HAVE_ARPA_INET_H=0
+  fi
+  AC_SUBST([HAVE_ARPA_INET_H])
+  dnl <arpa/inet.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_CHECK_NEXT_HEADERS([arpa/inet.h])
+
+  AC_REQUIRE([gl_FEATURES_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([[
+/* On some systems, this header is not self-consistent.  */
+#if !(defined __GLIBC__ || defined __UCLIBC__)
+# include <sys/socket.h>
+#endif
+#ifdef __TANDEM
+# include <netdb.h>
+#endif
+#include <arpa/inet.h>
+    ]], [inet_ntop inet_pton])
+])
+
+AC_DEFUN([gl_ARPA_INET_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_ARPA_INET_H_DEFAULTS],
+[
+  GNULIB_INET_NTOP=0;     AC_SUBST([GNULIB_INET_NTOP])
+  GNULIB_INET_PTON=0;     AC_SUBST([GNULIB_INET_PTON])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_DECL_INET_NTOP=1;  AC_SUBST([HAVE_DECL_INET_NTOP])
+  HAVE_DECL_INET_PTON=1;  AC_SUBST([HAVE_DECL_INET_PTON])
+  REPLACE_INET_NTOP=0;    AC_SUBST([REPLACE_INET_NTOP])
+  REPLACE_INET_PTON=0;    AC_SUBST([REPLACE_INET_PTON])
+])
index 978a06e..47e8fd8 100644 (file)
@@ -1,5 +1,5 @@
 # btowc.m4 serial 10
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 5760dbe..aa9895e 100644 (file)
@@ -1,6 +1,6 @@
 # Check prerequisites for compiling lib/c-stack.c.
 
-# Copyright (C) 2002-2004, 2008-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2004, 2008-2016 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 6597fb6..bb20344 100644 (file)
@@ -1,5 +1,5 @@
 # clock_time.m4 serial 10
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 bccd981..310f076 100644 (file)
@@ -1,5 +1,5 @@
 # close.m4 serial 8
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 c2761be..bc98201 100644 (file)
@@ -1,5 +1,6 @@
 # codeset.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 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.
index 9158d66..d6664b7 100644 (file)
@@ -1,6 +1,6 @@
 # Say that -DHAVE_CONFIG_H is not needed.
 
-dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 823ffc0..80b9254 100644 (file)
@@ -1,5 +1,5 @@
-# configmake.m4 serial 1
-dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# configmake.m4 serial 2
+dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,8 +7,9 @@ dnl with or without modifications, as long as this notice is preserved.
 # gl_CONFIGMAKE_PREP
 # ------------------
 # Guarantee all of the standard directory variables, even when used with
-# autoconf 2.59 (datarootdir wasn't supported until 2.59c) or automake
-# 1.9.6 (pkglibexecdir wasn't supported until 1.10b.).
+# autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir
+# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b,
+# and runstatedir in 1.14.1).
 AC_DEFUN([gl_CONFIGMAKE_PREP],
 [
   dnl Technically, datadir should default to datarootdir.  But if
@@ -43,6 +44,10 @@ AC_DEFUN([gl_CONFIGMAKE_PREP],
   if test "x$localedir" = x; then
     AC_SUBST([localedir], ['${datarootdir}/locale'])
   fi
+  dnl Added in autoconf 2.70
+  if test "x$runstatedir" = x; then
+    AC_SUBST([runstatedir], ['${localstatedir}/run'])
+  fi
 
   dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
   dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
diff --git a/m4/ctype.m4 b/m4/ctype.m4
new file mode 100644 (file)
index 0000000..a2165aa
--- /dev/null
@@ -0,0 +1,32 @@
+# ctype_h.m4 serial 6
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_CTYPE_H],
+[
+  AC_REQUIRE([gl_CTYPE_H_DEFAULTS])
+
+  dnl <ctype.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_NEXT_HEADERS([ctype.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 <ctype.h>
+    ]], [isblank])
+])
+
+AC_DEFUN([gl_CTYPE_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_CTYPE_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_CTYPE_H_DEFAULTS],
+[
+  GNULIB_ISBLANK=0; AC_SUBST([GNULIB_ISBLANK])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_ISBLANK=1;   AC_SUBST([HAVE_ISBLANK])
+])
index 5897a2a..6f8bec3 100644 (file)
@@ -1,5 +1,5 @@
 #serial 10   -*- autoconf -*-
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 bd6f867..dfd3921 100644 (file)
@@ -1,5 +1,5 @@
 # double-slash-root.m4 serial 4   -*- Autoconf -*-
-dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 269cfdc..5b68312 100644 (file)
@@ -1,5 +1,5 @@
-#serial 19
-dnl Copyright (C) 2002, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+#serial 25
+dnl Copyright (C) 2002, 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -19,31 +19,60 @@ AC_DEFUN([gl_FUNC_DUP2],
   if test $HAVE_DUP2 = 1; then
     AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
       [AC_RUN_IFELSE([
-         AC_LANG_PROGRAM([[#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>]],
-           [int result = 0;
-#ifdef FD_CLOEXEC
-            if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
-              result |= 1;
-#endif
-            if (dup2 (1, 1) == 0)
-              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, 1000000) == -1 && errno != EBADF)
-              result |= 16;
-            /* Flush out a cygwin core dump.  */
-            if (dup2 (2, -1) != -1 || errno != EBADF)
-              result |= 32;
-            return result;
-           ])
+         AC_LANG_PROGRAM(
+           [[#include <errno.h>
+             #include <fcntl.h>
+             #include <limits.h>
+             #include <sys/resource.h>
+             #include <unistd.h>
+             #ifndef RLIM_SAVED_CUR
+             # define RLIM_SAVED_CUR RLIM_INFINITY
+             #endif
+             #ifndef RLIM_SAVED_MAX
+             # define RLIM_SAVED_MAX RLIM_INFINITY
+             #endif
+           ]],
+           [[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;]])
         ],
         [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no],
         [case "$host_os" in
@@ -51,13 +80,16 @@ AC_DEFUN([gl_FUNC_DUP2],
              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" ;;
-           linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a
-                   # closed fd may yield -EBADF instead of -1 / errno=EBADF.
-             gl_cv_func_dup2_works="guessing no" ;;
-           freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF.
+           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])
       ])
@@ -65,6 +97,7 @@ AC_DEFUN([gl_FUNC_DUP2],
       *yes) ;;
       *)
         REPLACE_DUP2=1
+        AC_CHECK_FUNCS([setdtablesize])
         ;;
     esac
   fi
index c640ec1..63d74de 100644 (file)
@@ -1,5 +1,5 @@
 # eealloc.m4 serial 3
-dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 593a33e..9a0ea7e 100644 (file)
@@ -1,5 +1,5 @@
 # environ.m4 serial 6
-dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 c813ea5..b111fce 100644 (file)
@@ -1,5 +1,5 @@
 # errno_h.m4 serial 12
-dnl Copyright (C) 2004, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2004, 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 29e6fdc..f772bcf 100644 (file)
@@ -1,6 +1,6 @@
 #serial 14
 
-# Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-1998, 2001-2004, 2009-2016 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 09df468..7869a7d 100644 (file)
@@ -1,5 +1,5 @@
 # exponentd.m4 serial 3
-dnl Copyright (C) 2007-2008, 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2008, 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 07ba376..6d378ec 100644 (file)
@@ -1,12 +1,12 @@
 # serial 13  -*- Autoconf -*-
 # Enable extensions on systems that normally disable them.
 
-# Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git
 # Autoconf.  Perhaps we can remove this once we can assume Autoconf
 # 2.70 or later everywhere, but since Autoconf mutates rapidly
 # enough in this area it's likely we'll need to redefine
@@ -68,6 +68,10 @@ dnl configure.ac when using autoheader 2.62.
 #ifndef _GNU_SOURCE
 # undef _GNU_SOURCE
 #endif
+/* Use GNU style printf and scanf.  */
+#ifndef __USE_MINGW_ANSI_STDIO
+# undef __USE_MINGW_ANSI_STDIO
+#endif
 /* Enable threading extensions on Solaris.  */
 #ifndef _POSIX_PTHREAD_SEMANTICS
 # undef _POSIX_PTHREAD_SEMANTICS
@@ -100,6 +104,7 @@ dnl configure.ac when using autoheader 2.62.
   AC_DEFINE([_ALL_SOURCE])
   AC_DEFINE([_DARWIN_C_SOURCE])
   AC_DEFINE([_GNU_SOURCE])
+  AC_DEFINE([__USE_MINGW_ANSI_STDIO])
   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
   AC_DEFINE([_TANDEM_SOURCE])
   AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
index 0152f29..1e578f3 100644 (file)
@@ -1,6 +1,6 @@
 dnl 'extern inline' a la ISO C99.
 
-dnl Copyright 2012-2013 Free Software Foundation, Inc.
+dnl Copyright 2012-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,43 +8,80 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_EXTERN_INLINE],
 [
   AH_VERBATIM([extern_inline],
-[/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'.
-   _GL_EXTERN_INLINE is a portable alternative to 'extern inline'.
-   _GL_INLINE_HEADER_BEGIN contains useful stuff to put
-     in an include file, before uses of _GL_INLINE.
-     It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic,
-     when FOO is an inline function in the header; see
-     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
-   _GL_INLINE_HEADER_END contains useful stuff to put
-     in the same include file, after uses of _GL_INLINE.
+[/* Please see the Gnulib manual for how to use these macros.
 
    Suppress extern inline with HP-UX cc, as it appears to be broken; see
    <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
 
-   Suppress the use of extern inline on Apple's platforms,
-   as Libc-825.25 (2012-09-19) is incompatible with it; see
-   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
-   Perhaps Apple will fix this some day.  */
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions.  This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.  */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
 #if ((__GNUC__ \
       ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
-      : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \
-     && !defined __APPLE__)
+      : (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
-#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__
-# if __GNUC_GNU_INLINE__
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
    /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
 #  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
 # else
 #  define _GL_INLINE extern inline
 # endif
 # define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
 #else
 # define _GL_INLINE static _GL_UNUSED
 # define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
-#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+/* 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
index 87cc4bd..24fcf88 100644 (file)
@@ -1,5 +1,5 @@
 # fcntl-o.m4 serial 4
-dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 5481cae..bb61470 100644 (file)
@@ -1,5 +1,5 @@
-# fcntl.m4 serial 5
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# fcntl.m4 serial 9
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,51 @@ AC_DEFUN([gl_FUNC_FCNTL],
     dnl haiku alpha 2 F_DUPFD has wrong errno
     AC_CACHE_CHECK([whether fcntl handles F_DUPFD correctly],
       [gl_cv_func_fcntl_f_dupfd_works],
-      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <fcntl.h>
-#include <errno.h>
-]], [[int result = 0;
-      if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
-      if (errno != EINVAL) result |= 2;
-      return result;
-         ]])],
+      [AC_RUN_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <errno.h>
+              #include <fcntl.h>
+              #include <limits.h>
+              #include <sys/resource.h>
+              #include <unistd.h>
+              #ifndef RLIM_SAVED_CUR
+              # define RLIM_SAVED_CUR RLIM_INFINITY
+              #endif
+              #ifndef RLIM_SAVED_MAX
+              # define RLIM_SAVED_MAX RLIM_INFINITY
+              #endif
+            ]],
+            [[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;]])],
          [gl_cv_func_fcntl_f_dupfd_works=yes],
          [gl_cv_func_fcntl_f_dupfd_works=no],
-         [# Guess that it works on glibc systems
-          case $host_os in #((
-            *-gnu*) gl_cv_func_fcntl_f_dupfd_works="guessing yes";;
-            *)      gl_cv_func_fcntl_f_dupfd_works="guessing no";;
+         [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])])
     case $gl_cv_func_fcntl_f_dupfd_works in
       *yes) ;;
index 3cff1fd..ef0d78d 100644 (file)
@@ -1,6 +1,6 @@
 # serial 15
 # Configure fcntl.h.
-dnl Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 74d1649..685a1bb 100644 (file)
@@ -1,5 +1,5 @@
 # fdopen.m4 serial 3
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 40946e8..b794880 100644 (file)
@@ -1,5 +1,5 @@
 # filenamecat.m4 serial 11
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/flexmember.m4 b/m4/flexmember.m4
new file mode 100644 (file)
index 0000000..baa9ff8
--- /dev/null
@@ -0,0 +1,41 @@
+# serial 3
+# Check for flexible array member support.
+
+# Copyright (C) 2006, 2009-2016 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.
+
+AC_DEFUN([AC_C_FLEXIBLE_ARRAY_MEMBER],
+[
+  AC_CACHE_CHECK([for flexible array member],
+    ac_cv_c_flexmember,
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <stdlib.h>
+            #include <stdio.h>
+            #include <stddef.h>
+            struct s { int n; double d[]; };]],
+          [[int m = getchar ();
+            struct s *p = malloc (offsetof (struct s, d)
+                                  + m * sizeof (double));
+            p->d[0] = 0.0;
+            return p->d != (double *) NULL;]])],
+       [ac_cv_c_flexmember=yes],
+       [ac_cv_c_flexmember=no])])
+  if test $ac_cv_c_flexmember = yes; then
+    AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [],
+      [Define to nothing if C supports flexible array members, and to
+       1 if it does not.  That way, with a declaration like 'struct s
+       { int n; double d@<:@FLEXIBLE_ARRAY_MEMBER@:>@; };', the struct hack
+       can be used with pre-C99 compilers.
+       When computing the size of such an object, don't use 'sizeof (struct s)'
+       as it overestimates the size.  Use 'offsetof (struct s, d)' instead.
+       Don't use 'offsetof (struct s, d@<:@0@:>@)', as this doesn't work with
+       MSVC and with C++ compilers.])
+  else
+    AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [1])
+  fi
+])
index 397f2d1..e2887eb 100644 (file)
@@ -1,5 +1,5 @@
 # float_h.m4 serial 9
-dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 fa0ba4d..b38f56c 100644 (file)
@@ -1,6 +1,6 @@
-# Check for fnmatch - serial 9.
+# Check for fnmatch - serial 9.  -*- coding: utf-8 -*-
 
-# Copyright (C) 2000-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2007, 2009-2016 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 97941bb..e11ac9f 100644 (file)
@@ -1,5 +1,5 @@
-# fpieee.m4 serial 2
-dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+# fpieee.m4 serial 2  -*- coding: utf-8 -*-
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4617156..8d8e124 100644 (file)
@@ -1,5 +1,5 @@
-# freopen.m4 serial 4
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+# freopen.m4 serial 5
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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_FREOPEN],
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   AC_REQUIRE([AC_CANONICAL_HOST])
   case "$host_os" in
-    mingw* | pw*)
+    mingw* | pw* | os2*)
       REPLACE_FREOPEN=1
       ;;
   esac
index b2cf2ad..29f9b81 100644 (file)
@@ -1,5 +1,5 @@
 # fstat.m4 serial 4
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/ftruncate.m4 b/m4/ftruncate.m4
new file mode 100644 (file)
index 0000000..b62414c
--- /dev/null
@@ -0,0 +1,40 @@
+# serial 20
+
+# See if we need to emulate a missing ftruncate function using chsize.
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2016 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_FUNC_FTRUNCATE],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([ftruncate])
+  if test $ac_cv_func_ftruncate = yes; then
+    m4_ifdef([gl_LARGEFILE], [
+      AC_REQUIRE([AC_CANONICAL_HOST])
+      case "$host_os" in
+        mingw*)
+          dnl Native Windows, and Large File Support is requested.
+          dnl The MSVCRT _chsize() function only accepts a 32-bit file size,
+          dnl and the mingw64 ftruncate64() function is unreliable (it may
+          dnl delete the file, see
+          dnl <http://mingw-w64.sourcearchive.com/documentation/2.0-1/ftruncate64_8c_source.html>).
+          dnl Use gnulib's ftruncate() implementation instead.
+          REPLACE_FTRUNCATE=1
+          ;;
+      esac
+    ], [
+      :
+    ])
+  else
+    HAVE_FTRUNCATE=0
+  fi
+])
+
+# Prerequisites of lib/ftruncate.c.
+AC_DEFUN([gl_PREREQ_FTRUNCATE],
+[
+  AC_CHECK_FUNCS([chsize])
+])
index 6f91bd9..566c3c1 100644 (file)
@@ -1,12 +1,12 @@
 # getcwd.m4 - check for working getcwd that is compatible with glibc
 
-# Copyright (C) 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2016 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 12
+# serial 13
 
 AC_DEFUN([gl_FUNC_GETCWD_NULL],
   [
@@ -15,6 +15,7 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL],
    AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
      [gl_cv_func_getcwd_null],
      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#       include <stdlib.h>
 #        if HAVE_UNISTD_H
 #         include <unistd.h>
 #        else /* on Windows with MSVC */
@@ -39,6 +40,7 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL],
                  return 3;
                if (f[1] != '\0')
                  return 4;
+               free (f);
                return 0;
              }
 #endif
@@ -136,11 +138,16 @@ AC_DEFUN([gl_FUNC_GETCWD],
         [Define to 1 if getcwd works, except it sometimes fails when it
          shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.])
       ;;
+    "yes, but with shorter paths")
+      AC_DEFINE([HAVE_GETCWD_SHORTER], [1],
+        [Define to 1 if getcwd works, but with shorter paths
+         than is generally tested with the replacement.])
+      ;;
   esac
 
   if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
      || test $gl_cv_func_getcwd_posix_signature != yes \
-     || test "$gl_cv_func_getcwd_path_max" != yes \
+     || { case "$gl_cv_func_getcwd_path_max" in *yes*) false;; *) true;; esac; } \
      || test $gl_abort_bug = yes; then
     REPLACE_GETCWD=1
   fi
index 8f04b3b..1bf4db0 100644 (file)
@@ -1,5 +1,5 @@
-# getdtablesize.m4 serial 4
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# getdtablesize.m4 serial 6
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -7,8 +7,37 @@ dnl with or without modifications, as long as this notice is preserved.
 AC_DEFUN([gl_FUNC_GETDTABLESIZE],
 [
   AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+  AC_REQUIRE([AC_CANONICAL_HOST])
   AC_CHECK_FUNCS_ONCE([getdtablesize])
-  if test $ac_cv_func_getdtablesize != yes; then
+  AC_CHECK_DECLS_ONCE([getdtablesize])
+  if test $ac_cv_func_getdtablesize = yes &&
+     test $ac_cv_have_decl_getdtablesize = yes; then
+    # Cygwin 1.7.25 automatically increases the RLIMIT_NOFILE soft limit
+    # up to an unchangeable hard limit; all other platforms correctly
+    # require setrlimit before getdtablesize() can report a larger value.
+    AC_CACHE_CHECK([whether getdtablesize works],
+      [gl_cv_func_getdtablesize_works],
+      [AC_RUN_IFELSE([
+        AC_LANG_PROGRAM([[#include <unistd.h>]],
+          [int size = getdtablesize();
+           if (dup2 (0, getdtablesize()) != -1)
+             return 1;
+           if (size != getdtablesize())
+             return 2;
+          ])],
+        [gl_cv_func_getdtablesize_works=yes],
+        [gl_cv_func_getdtablesize_works=no],
+        [case "$host_os" in
+          cygwin*) # on cygwin 1.5.25, getdtablesize() automatically grows
+            gl_cv_func_getdtablesize_works="guessing no" ;;
+          *) gl_cv_func_getdtablesize_works="guessing yes" ;;
+         esac])
+      ])
+    case "$gl_cv_func_getdtablesize_works" in
+      *yes) ;;
+      *) REPLACE_GETDTABLESIZE=1 ;;
+    esac
+  else
     HAVE_GETDTABLESIZE=0
   fi
 ])
index 50f4509..ce6ec67 100644 (file)
@@ -1,5 +1,5 @@
 # getopt.m4 serial 44
-dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 06e893d..8902b7b 100644 (file)
@@ -1,5 +1,5 @@
 # getpagesize.m4 serial 9
-dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2016 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 8d1f066..be247bf 100644 (file)
@@ -1,5 +1,5 @@
 # gettext.m4 serial 66 (gettext-0.18.2)
-dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index dc100de..9843ed4 100644 (file)
@@ -1,5 +1,5 @@
 # gettime.m4 serial 8
-dnl Copyright (C) 2002, 2004-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3c05e59..4ae5d63 100644 (file)
@@ -1,6 +1,6 @@
-# serial 20
+# serial 21
 
-# Copyright (C) 2001-2003, 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2016 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.
@@ -127,10 +127,8 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
 ])
 
 AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
-  AC_DEFINE([gmtime], [rpl_gmtime],
-    [Define to rpl_gmtime if the replacement function should be used.])
-  AC_DEFINE([localtime], [rpl_localtime],
-    [Define to rpl_localtime if the replacement function should be used.])
+  REPLACE_GMTIME=1
+  REPLACE_LOCALTIME=1
 ])
 
 # Prerequisites of lib/gettimeofday.c.
index 613fb2a..dafebf5 100644 (file)
@@ -1,5 +1,5 @@
 # glibc21.m4 serial 5
-dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2013 Free Software Foundation,
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2016 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 68d15bc..320c831 100644 (file)
@@ -1,6 +1,6 @@
 # Determine whether recent-enough GNU Make is being used.
 
-# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 0ae5a9e..f8454c8 100644 (file)
@@ -1,5 +1,5 @@
-# gnulib-common.m4 serial 33
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+# gnulib-common.m4 serial 36
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -49,6 +49,16 @@ AC_DEFUN([gl_COMMON_BODY], [
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
 /* The __pure__ attribute was added in gcc 2.96.  */
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
@@ -243,9 +253,10 @@ AC_DEFUN([gl_PROG_AR_RANLIB],
 [
   dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
   dnl as "cc", and GCC as "gcc". They have different object file formats and
-  dnl library formats. In particular, the GNU binutils programs ar, ranlib
+  dnl library formats. In particular, the GNU binutils programs ar and ranlib
   dnl produce libraries that work only with gcc, not with cc.
   AC_REQUIRE([AC_PROG_CC])
+  AC_BEFORE([$0], [AM_PROG_AR])
   AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
     [
       AC_EGREP_CPP([Amsterdam],
@@ -257,25 +268,37 @@ Amsterdam
         [gl_cv_c_amsterdam_compiler=yes],
         [gl_cv_c_amsterdam_compiler=no])
     ])
-  if test -z "$AR"; then
-    if test $gl_cv_c_amsterdam_compiler = yes; then
+
+  dnl Don't compete with AM_PROG_AR's decision about AR/ARFLAGS if we are not
+  dnl building with __ACK__.
+  if test $gl_cv_c_amsterdam_compiler = yes; then
+    if test -z "$AR"; then
       AR='cc -c.a'
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='-o'
-      fi
-    else
-      dnl Use the Automake-documented default values for AR and ARFLAGS,
-      dnl but prefer ${host}-ar over ar (useful for cross-compiling).
-      AC_CHECK_TOOL([AR], [ar], [ar])
-      if test -z "$ARFLAGS"; then
-        ARFLAGS='cru'
-      fi
     fi
-  else
     if test -z "$ARFLAGS"; then
-      ARFLAGS='cru'
+      ARFLAGS='-o'
     fi
+  else
+    dnl AM_PROG_AR was added in automake v1.11.2.  AM_PROG_AR does not AC_SUBST
+    dnl ARFLAGS variable (it is filed into Makefile.in directly by automake
+    dnl script on-demand, if not specified by ./configure of course).
+    dnl Don't AC_REQUIRE the AM_PROG_AR otherwise the code for __ACK__ above
+    dnl will be ignored.  Also, pay attention to call AM_PROG_AR in else block
+    dnl because AM_PROG_AR is written so it could re-set AR variable even for
+    dnl __ACK__.  It may seem like its easier to avoid calling the macro here,
+    dnl but we need to AC_SUBST both AR/ARFLAGS (thus those must have some good
+    dnl default value and automake should usually know them).
+    m4_ifdef([AM_PROG_AR], [AM_PROG_AR], [:])
   fi
+
+  dnl In case the code above has not helped with setting AR/ARFLAGS, use
+  dnl Automake-documented default values for AR and ARFLAGS, but prefer
+  dnl ${host}-ar over ar (useful for cross-compiling).
+  AC_CHECK_TOOL([AR], [ar], [ar])
+  if test -z "$ARFLAGS"; then
+    ARFLAGS='cr'
+  fi
+
   AC_SUBST([AR])
   AC_SUBST([ARFLAGS])
   if test -z "$RANLIB"; then
@@ -309,26 +332,28 @@ m4_ifdef([AC_PROG_MKDIR_P], [
 ])
 
 # AC_C_RESTRICT
-# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
-# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
-# works.
-# This definition can be removed once autoconf >= 2.62 can be assumed.
-# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness.
-m4_ifndef([AC_AUTOCONF_VERSION],[
+# This definition is copied from post-2.69 Autoconf and overrides the
+# AC_C_RESTRICT macro from autoconf 2.60..2.69.  It can be removed
+# once autoconf >= 2.70 can be assumed.  It's painful to check version
+# numbers, and in practice this macro is more up-to-date than Autoconf
+# is, so override Autoconf unconditionally.
 AC_DEFUN([AC_C_RESTRICT],
 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
   [ac_cv_c_restrict=no
    # The order here caters to the fact that C++ does not require restrict.
    for ac_kw in __restrict __restrict__ _Restrict restrict; do
-     AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-      [[typedef int * int_ptr;
-        int foo (int_ptr $ac_kw ip) {
-        return ip[0];
-       }]],
-      [[int s[1];
-        int * $ac_kw t = s;
-        t[0] = 0;
-        return foo(t)]])],
+     AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM(
+        [[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 s[1];
+          int *$ac_kw t = s;
+          t[0] = 0;
+          return foo (t) + bar (t);
+        ]])],
       [ac_cv_c_restrict=$ac_kw])
      test "$ac_cv_c_restrict" != no && break
    done
@@ -338,21 +363,21 @@ AC_DEFUN([AC_C_RESTRICT],
    nothing if this is not supported.  Do not define if restrict is
    supported directly.  */
 #undef restrict
-/* Work around a bug in Sun C++: it does not support _Restrict, even
-   though the corresponding Sun C compiler does, which causes
-   "#define restrict _Restrict" in the previous line.  Perhaps some future
-   version of Sun C++ will work with _Restrict; if so, it'll probably
-   define __RESTRICT, just as Sun C does.  */
+/* Work around a bug in Sun C++: it does not support _Restrict or
+   __restrict__, even though the corresponding Sun C compiler ends up with
+   "#define restrict _Restrict" or "#define restrict __restrict__" in the
+   previous line.  Perhaps some future version of Sun C++ will work with
+   restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */
 #if defined __SUNPRO_CC && !defined __RESTRICT
 # define _Restrict
+# define __restrict__
 #endif])
  case $ac_cv_c_restrict in
    restrict) ;;
    no) AC_DEFINE([restrict], []) ;;
    *)  AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
  esac
-])
-])
+])# AC_C_RESTRICT
 
 # gl_BIGENDIAN
 # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.
@@ -375,3 +400,63 @@ AC_DEFUN([gl_CACHE_VAL_SILENT],
   AC_CACHE_VAL([$1], [$2])
   as_echo_n="$saved_as_echo_n"
 ])
+
+# AS_VAR_COPY was added in autoconf 2.63b
+m4_define_default([AS_VAR_COPY],
+[AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])])
+
+# AC_PROG_SED was added in autoconf 2.59b
+m4_ifndef([AC_PROG_SED],
+[AC_DEFUN([AC_PROG_SED],
+[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED,
+    [dnl ac_script should not contain more than 99 commands (for HP-UX sed),
+     dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed.
+     ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     AS_UNSET([ac_script])
+     if test -z "$SED"; then
+       ac_path_SED_found=false
+       _AS_PATH_WALK([], [
+         for ac_prog in sed gsed; do
+           for ac_exec_ext in '' $ac_executable_extensions; do
+             ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+             AS_EXECUTABLE_P(["$ac_path_SED"]) || continue
+             case `"$ac_path_SED" --version 2>&1` in
+               *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;;
+               *)
+                 ac_count=0
+                 _AS_ECHO_N([0123456789]) >conftest.in
+                 while :
+                 do
+                   cat conftest.in conftest.in >conftest.tmp
+                   mv conftest.tmp conftest.in
+                   cp conftest.in conftest.nl
+                   echo >> conftest.nl
+                   "$ac_path_SED" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+                   diff conftest.out conftest.nl >/dev/null 2>&1 || break
+                   ac_count=`expr $ac_count + 1`
+                   if test $ac_count -gt ${ac_path_SED_max-0}; then
+                     # Best so far, but keep looking for better
+                     ac_cv_path_SED=$ac_path_SED
+                     ac_path_SED_max=$ac_count
+                   fi
+                   test $ac_count -gt 10 && break
+                 done
+                 rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+             esac
+             $ac_path_SED_found && break 3
+           done
+         done])
+       if test -z "$ac_cv_path_SED"; then
+         AC_ERROR([no acceptable sed could be found in \$PATH])
+       fi
+     else
+       ac_cv_path_SED=$SED
+     fi
+ SED="$ac_cv_path_SED"
+ AC_SUBST([SED])dnl
+ rm -f conftest.sed
+])])])
index b86a71e..ee8ab85 100644 (file)
@@ -1,5 +1,5 @@
 # DO NOT EDIT! GENERATED AUTOMATICALLY!
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2016 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
@@ -37,8 +37,15 @@ AC_DEFUN([gl_EARLY],
   m4_pattern_allow([^gl_ES$])dnl a valid locale name
   m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
   m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
+
+  # Pre-early section.
+  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 alloca:
   # Code from module alloca-opt:
   # Code from module alloca-opt-tests:
@@ -48,8 +55,13 @@ AC_DEFUN([gl_EARLY],
   # Code from module areadlink-tests:
   # Code from module argmatch:
   # Code from module argmatch-tests:
+  # Code from module arpa_inet:
+  # Code from module arpa_inet-tests:
+  # Code from module assure:
   # Code from module binary-io:
   # Code from module binary-io-tests:
+  # Code from module bind:
+  # Code from module bind-tests:
   # Code from module bitrotate:
   # Code from module bitrotate-tests:
   # Code from module btowc:
@@ -67,6 +79,10 @@ AC_DEFUN([gl_EARLY],
   # Code from module close-tests:
   # Code from module config-h:
   # Code from module configmake:
+  # Code from module connect:
+  # Code from module connect-tests:
+  # Code from module ctype:
+  # Code from module ctype-tests:
   # Code from module diffseq:
   # Code from module dirname:
   # Code from module dirname-lgpl:
@@ -74,6 +90,7 @@ AC_DEFUN([gl_EARLY],
   # Code from module do-release-commit-and-tag:
   # Code from module dosname:
   # Code from module double-slash-root:
+  # Code from module dtotimespec:
   # Code from module dup2:
   # Code from module dup2-tests:
   # Code from module environ:
@@ -85,7 +102,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module exclude-tests:
   # Code from module exitfail:
   # Code from module extensions:
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   # Code from module extern-inline:
   # Code from module fcntl:
   # Code from module fcntl-h:
@@ -97,9 +113,11 @@ AC_DEFUN([gl_EARLY],
   # Code from module fdopen-tests:
   # Code from module fgetc-tests:
   # Code from module file-type:
+  # Code from module filename:
   # Code from module filenamecat:
   # Code from module filenamecat-lgpl:
   # Code from module filenamecat-tests:
+  # Code from module flexmember:
   # Code from module float:
   # Code from module float-tests:
   # Code from module fnmatch:
@@ -116,6 +134,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module freopen-tests:
   # Code from module fstat:
   # Code from module fstat-tests:
+  # Code from module ftruncate:
+  # Code from module ftruncate-tests:
   # Code from module fwrite-tests:
   # Code from module gendocs:
   # Code from module getcwd-lgpl:
@@ -151,6 +171,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module ignore-value:
   # Code from module ignore-value-tests:
   # Code from module include_next:
+  # Code from module inet_pton:
+  # Code from module inet_pton-tests:
   # Code from module inline:
   # Code from module intprops:
   # Code from module intprops-tests:
@@ -159,6 +181,10 @@ AC_DEFUN([gl_EARLY],
   # Code from module inttypes:
   # Code from module inttypes-incomplete:
   # Code from module inttypes-tests:
+  # Code from module ioctl:
+  # Code from module ioctl-tests:
+  # Code from module isblank:
+  # Code from module isblank-tests:
   # Code from module iswblank:
   # Code from module iswblank-tests:
   # Code from module langinfo:
@@ -166,6 +192,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module largefile:
   AC_REQUIRE([AC_SYS_LARGEFILE])
   # Code from module libsigsegv:
+  # Code from module listen:
+  # Code from module listen-tests:
   # Code from module localcharset:
   # Code from module locale:
   # Code from module locale-tests:
@@ -174,8 +202,6 @@ AC_DEFUN([gl_EARLY],
   # Code from module lstat:
   # Code from module lstat-tests:
   # Code from module maintainer-makefile:
-  # Code from module malloc-gnu:
-  # Code from module malloc-gnu-tests:
   # Code from module malloc-posix:
   # Code from module malloca:
   # Code from module malloca-tests:
@@ -199,9 +225,14 @@ AC_DEFUN([gl_EARLY],
   # Code from module memchr-tests:
   # Code from module mkstemp:
   # Code from module mktime:
+  # Code from module mktime-internal:
   # Code from module msvc-inval:
   # Code from module msvc-nothrow:
   # Code from module multiarch:
+  # Code from module nanosleep:
+  # Code from module nanosleep-tests:
+  # Code from module netinet_in:
+  # Code from module netinet_in-tests:
   # Code from module nl_langinfo:
   # Code from module nl_langinfo-tests:
   # Code from module nocrash:
@@ -209,6 +240,10 @@ AC_DEFUN([gl_EARLY],
   # Code from module open-tests:
   # Code from module pathmax:
   # Code from module pathmax-tests:
+  # 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 putenv:
@@ -218,6 +253,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module quotearg-simple-tests:
   # Code from module raise:
   # Code from module raise-tests:
+  # Code from module rawmemchr:
+  # Code from module rawmemchr-tests:
   # Code from module readlink:
   # Code from module readlink-tests:
   # Code from module readme-release:
@@ -225,10 +262,14 @@ AC_DEFUN([gl_EARLY],
   # Code from module regex-tests:
   # Code from module same-inode:
   # Code from module secure_getenv:
+  # Code from module select:
+  # Code from module select-tests:
   # Code from module setenv:
   # Code from module setenv-tests:
   # Code from module setlocale:
   # Code from module setlocale-tests:
+  # Code from module setsockopt:
+  # Code from module setsockopt-tests:
   # Code from module sh-quote:
   # Code from module sh-quote-tests:
   # Code from module sigaction:
@@ -248,12 +289,19 @@ AC_DEFUN([gl_EARLY],
   # Code from module snippet/warn-on-use:
   # Code from module snprintf:
   # Code from module snprintf-tests:
+  # Code from module socket:
+  # Code from module socketlib:
+  # Code from module sockets:
+  # Code from module sockets-tests:
+  # Code from module socklen:
   # Code from module ssize_t:
   # Code from module stat:
   # Code from module stat-macros:
   # Code from module stat-tests:
   # Code from module stat-time:
   # Code from module stat-time-tests:
+  # 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.  With Autoconf 2.60 or later,
@@ -275,6 +323,8 @@ AC_DEFUN([gl_EARLY],
   # Code from module strerror:
   # Code from module strerror-override:
   # Code from module strerror-tests:
+  # Code from module strerror_r-posix:
+  # Code from module strerror_r-posix-tests:
   # Code from module strftime:
   # Code from module strftime-tests:
   # Code from module striconv:
@@ -294,12 +344,20 @@ AC_DEFUN([gl_EARLY],
   # Code from module strtoumax-tests:
   # Code from module symlink:
   # Code from module symlink-tests:
+  # Code from module sys_ioctl:
+  # Code from module sys_ioctl-tests:
+  # Code from module sys_select:
+  # Code from module sys_select-tests:
+  # Code from module sys_socket:
+  # Code from module sys_socket-tests:
   # Code from module sys_stat:
   # Code from module sys_stat-tests:
   # Code from module sys_time:
   # Code from module sys_time-tests:
   # Code from module sys_types:
   # Code from module sys_types-tests:
+  # Code from module sys_uio:
+  # Code from module sys_uio-tests:
   # Code from module sys_wait:
   # Code from module sys_wait-tests:
   # Code from module system-quote:
@@ -309,7 +367,12 @@ AC_DEFUN([gl_EARLY],
   # Code from module time:
   # Code from module time-tests:
   # Code from module time_r:
+  # Code from module time_rz:
+  # Code from module timegm:
   # Code from module timespec:
+  # Code from module timespec-add:
+  # Code from module timespec-sub:
+  # Code from module timespec-tests:
   # Code from module trim:
   # Code from module unistd:
   # Code from module unistd-tests:
@@ -328,8 +391,6 @@ 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 usleep:
-  # Code from module usleep-tests:
   # Code from module vararrays:
   # Code from module vasnprintf:
   # Code from module vasnprintf-tests:
@@ -403,6 +464,7 @@ AC_DEFUN([gl_INIT],
   gl_UNISTD_MODULE_INDICATOR([close])
   gl_CONFIG_H
   gl_CONFIGMAKE_PREP
+  gl_CTYPE_H
   gl_DIRNAME
   gl_MODULE_INDICATOR([dirname])
   gl_DIRNAME_LGPL
@@ -413,6 +475,8 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_DUP2
   fi
   gl_UNISTD_MODULE_INDICATOR([dup2])
+  gl_ENVIRON
+  gl_UNISTD_MODULE_INDICATOR([environ])
   gl_HEADER_ERRNO_H
   gl_ERROR
   if test $ac_cv_lib_error_at_line = no; then
@@ -432,6 +496,7 @@ AC_DEFUN([gl_INIT],
   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])
@@ -463,7 +528,7 @@ AC_DEFUN([gl_INIT],
   fi
   gl_SYS_STAT_MODULE_INDICATOR([fstat])
   gl_FUNC_GETDTABLESIZE
-  if test $HAVE_GETDTABLESIZE = 0; then
+  if test $HAVE_GETDTABLESIZE = 0 || test $REPLACE_GETDTABLESIZE = 1; then
     AC_LIBOBJ([getdtablesize])
     gl_PREREQ_GETDTABLESIZE
   fi
@@ -524,6 +589,11 @@ AC_DEFUN([gl_INIT],
   gl_INTTOSTR
   gl_INTTYPES_H
   gl_INTTYPES_INCOMPLETE
+  gl_FUNC_ISBLANK
+  if test $HAVE_ISBLANK = 0; then
+    AC_LIBOBJ([isblank])
+  fi
+  gl_CTYPE_MODULE_INDICATOR([isblank])
   gl_FUNC_ISWBLANK
   if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
     :
@@ -554,11 +624,7 @@ AC_DEFUN([gl_INIT],
   gl_SYS_STAT_MODULE_INDICATOR([lstat])
   AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER],
     [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])])
-  gl_FUNC_MALLOC_GNU
-  if test $REPLACE_MALLOC = 1; then
-    AC_LIBOBJ([malloc])
-  fi
-  gl_MODULE_INDICATOR([malloc-gnu])
+  AC_REQUIRE([AC_PROG_SED])
   gl_FUNC_MALLOC_POSIX
   if test $REPLACE_MALLOC = 1; then
     AC_LIBOBJ([malloc])
@@ -615,11 +681,16 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_MKTIME
   fi
   gl_TIME_MODULE_INDICATOR([mktime])
-  gl_MSVC_INVAL
+  gl_FUNC_MKTIME_INTERNAL
+  if test $REPLACE_MKTIME = 1; then
+    AC_LIBOBJ([mktime])
+    gl_PREREQ_MKTIME
+  fi
+  AC_REQUIRE([gl_MSVC_INVAL])
   if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
     AC_LIBOBJ([msvc-inval])
   fi
-  gl_MSVC_NOTHROW
+  AC_REQUIRE([gl_MSVC_NOTHROW])
   if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
     AC_LIBOBJ([msvc-nothrow])
   fi
@@ -649,6 +720,12 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_RAISE
   fi
   gl_SIGNAL_MODULE_INDICATOR([raise])
+  gl_FUNC_RAWMEMCHR
+  if test $HAVE_RAWMEMCHR = 0; then
+    AC_LIBOBJ([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])
@@ -666,6 +743,11 @@ AC_DEFUN([gl_INIT],
     gl_PREREQ_SECURE_GETENV
   fi
   gl_STDLIB_MODULE_INDICATOR([secure_getenv])
+  gl_FUNC_SETENV
+  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+    AC_LIBOBJ([setenv])
+  fi
+  gl_STDLIB_MODULE_INDICATOR([setenv])
   gl_SIGACTION
   if test $HAVE_SIGACTION = 0; then
     AC_LIBOBJ([sigaction])
@@ -747,7 +829,7 @@ AC_DEFUN([gl_INIT],
   fi
   gl_STDLIB_MODULE_INDICATOR([strtoull])
   gl_FUNC_STRTOUMAX
-  if test $ac_cv_func_strtoumax = no; then
+  if test $HAVE_DECL_STRTOUMAX = 0 || test $REPLACE_STRTOUMAX = 1; then
     AC_LIBOBJ([strtoumax])
     gl_PREREQ_STRTOUMAX
   fi
@@ -768,17 +850,34 @@ AC_DEFUN([gl_INIT],
     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_TIME_MODULE_INDICATOR([time_rz])
+  gl_FUNC_TIMEGM
+  if test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1; then
+    AC_LIBOBJ([timegm])
+    gl_PREREQ_TIMEGM
+  fi
+  gl_TIME_MODULE_INDICATOR([timegm])
   gl_TIMESPEC
   gl_UNISTD_H
-  gl_LIBUNISTRING_LIBHEADER([0.9.2], [unistr.h])
+  gl_LIBUNISTRING_LIBHEADER([0.9.4], [unistr.h])
   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], [unitypes.h])
-  gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
-  gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
+  gl_LIBUNISTRING_LIBHEADER([0.9.4], [unitypes.h])
+  gl_LIBUNISTRING_LIBHEADER([0.9.4], [uniwidth.h])
+  gl_LIBUNISTRING_MODULE([0.9.6], [uniwidth/width])
   gl_FUNC_GLIBC_UNLOCKED_IO
+  gl_FUNC_UNSETENV
+  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+    AC_LIBOBJ([unsetenv])
+    gl_PREREQ_UNSETENV
+  fi
+  gl_STDLIB_MODULE_INDICATOR([unsetenv])
   AC_C_VARARRAYS
   gl_FUNC_VASNPRINTF
   gl_FUNC_VASPRINTF
@@ -853,18 +952,39 @@ changequote([, ])dnl
   AC_SUBST([gltests_WITNESS])
   gl_module_indicator_condition=$gltests_WITNESS
   m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([accept])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([accept])
+  gl_HEADER_ARPA_INET
+  AC_PROG_MKDIR_P
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([bind])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([bind])
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
   gt_LOCALE_FR
   gt_LOCALE_TR_UTF8
-  gl_ENVIRON
-  gl_UNISTD_MODULE_INDICATOR([environ])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([connect])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([connect])
   gl_FUNC_FDOPEN
   if test $REPLACE_FDOPEN = 1; then
     AC_LIBOBJ([fdopen])
     gl_PREREQ_FDOPEN
   fi
   gl_STDIO_MODULE_INDICATOR([fdopen])
+  gl_FUNC_FTRUNCATE
+  if test $HAVE_FTRUNCATE = 0 || test $REPLACE_FTRUNCATE = 1; then
+    AC_LIBOBJ([ftruncate])
+    gl_PREREQ_FTRUNCATE
+  fi
+  gl_UNISTD_MODULE_INDICATOR([ftruncate])
   gl_FUNC_GETCWD_LGPL
   if test $REPLACE_GETCWD = 1; then
     AC_LIBOBJ([getcwd-lgpl])
@@ -875,6 +995,23 @@ changequote([, ])dnl
     AC_LIBOBJ([getpagesize])
   fi
   gl_UNISTD_MODULE_INDICATOR([getpagesize])
+  gl_FUNC_INET_PTON
+  if test $HAVE_INET_PTON = 0 || test $REPLACE_INET_NTOP = 1; then
+    AC_LIBOBJ([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_SYS_IOCTL_MODULE_INDICATOR([ioctl])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([listen])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([listen])
   AC_CHECK_FUNCS_ONCE([newlocale])
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
@@ -892,19 +1029,48 @@ changequote([, ])dnl
   gl_FUNC_MMAP_ANON
   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_TIME_MODULE_INDICATOR([nanosleep])
+  AC_CHECK_DECLS_ONCE([alarm])
+  gl_HEADER_NETINET_IN
+  AC_PROG_MKDIR_P
   gt_LOCALE_FR
   gt_LOCALE_FR_UTF8
+  gl_FUNC_PERROR
+  if test $REPLACE_PERROR = 1; then
+    AC_LIBOBJ([perror])
+  fi
+  gl_STRING_MODULE_INDICATOR([perror])
+  gl_FUNC_PIPE
+  if test $HAVE_PIPE = 0; then
+    AC_LIBOBJ([pipe])
+  fi
+  gl_UNISTD_MODULE_INDICATOR([pipe])
   gl_FUNC_PUTENV
   if test $REPLACE_PUTENV = 1; then
     AC_LIBOBJ([putenv])
     gl_PREREQ_PUTENV
   fi
   gl_STDLIB_MODULE_INDICATOR([putenv])
-  gl_FUNC_SETENV
-  if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
-    AC_LIBOBJ([setenv])
+  dnl Check for prerequisites for memory fence checks.
+  dnl FIXME: zerosize-ptr.h requires these: make a module for it
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  dnl Check for prerequisites for memory fence checks.
+  gl_FUNC_MMAP_ANON
+  AC_CHECK_HEADERS_ONCE([sys/mman.h])
+  AC_CHECK_FUNCS_ONCE([mprotect])
+  gl_FUNC_SELECT
+  if test $REPLACE_SELECT = 1; then
+    AC_LIBOBJ([select])
   fi
-  gl_STDLIB_MODULE_INDICATOR([setenv])
+  gl_SYS_SELECT_MODULE_INDICATOR([select])
+  AC_CHECK_HEADERS_ONCE([sys/wait.h])
   gl_FUNC_SETLOCALE
   if test $REPLACE_SETLOCALE = 1; then
     AC_LIBOBJ([setlocale])
@@ -915,6 +1081,11 @@ changequote([, ])dnl
   gt_LOCALE_FR_UTF8
   gt_LOCALE_JA
   gt_LOCALE_ZH_CN
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([setsockopt])
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([setsockopt])
   gl_FUNC_SLEEP
   if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
     AC_LIBOBJ([sleep])
@@ -924,8 +1095,32 @@ changequote([, ])dnl
   gl_FUNC_SNPRINTF
   gl_STDIO_MODULE_INDICATOR([snprintf])
   gl_MODULE_INDICATOR([snprintf])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    AC_LIBOBJ([socket])
+  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.
+  m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
+  m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
+  AC_REQUIRE([gl_PREREQ_SYS_H_WINSOCK2])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+    SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=1
+  fi
+  gl_SYS_SOCKET_MODULE_INDICATOR([socket])
+  AC_REQUIRE([gl_SOCKETLIB])
+  AC_REQUIRE([gl_SOCKETS])
+  gl_TYPE_SOCKLEN_T
+  gl_STDALIGN_H
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   AC_REQUIRE([gt_TYPE_WINT_T])
+  gl_FUNC_STRERROR_R
+  if test $HAVE_DECL_STRERROR_R = 0 || test $REPLACE_STRERROR_R = 1; then
+    AC_LIBOBJ([strerror_r])
+    gl_PREREQ_STRERROR_R
+  fi
+  gl_STRING_MODULE_INDICATOR([strerror_r])
   dnl Check for prerequisites for memory fence checks.
   gl_FUNC_MMAP_ANON
   AC_CHECK_HEADERS_ONCE([sys/mman.h])
@@ -935,19 +1130,17 @@ changequote([, ])dnl
     AC_LIBOBJ([symlink])
   fi
   gl_UNISTD_MODULE_INDICATOR([symlink])
-  gl_FUNC_UNSETENV
-  if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
-    AC_LIBOBJ([unsetenv])
-    gl_PREREQ_UNSETENV
-  fi
-  gl_STDLIB_MODULE_INDICATOR([unsetenv])
+  gl_SYS_IOCTL_H
+  AC_PROG_MKDIR_P
+  gl_HEADER_SYS_SELECT
+  AC_PROG_MKDIR_P
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  AC_PROG_MKDIR_P
+  AC_CHECK_FUNCS_ONCE([shutdown])
+  gl_HEADER_SYS_UIO
+  AC_PROG_MKDIR_P
   abs_aux_dir=`cd "$ac_aux_dir"; pwd`
   AC_SUBST([abs_aux_dir])
-  gl_FUNC_USLEEP
-  if test $HAVE_USLEEP = 0 || test $REPLACE_USLEEP = 1; then
-    AC_LIBOBJ([usleep])
-  fi
-  gl_UNISTD_MODULE_INDICATOR([usleep])
   abs_aux_dir=`cd "$ac_aux_dir"; pwd`
   AC_SUBST([abs_aux_dir])
   gt_LOCALE_FR
@@ -1080,6 +1273,7 @@ AC_DEFUN([gl_FILE_LIST], [
   build-aux/vc-list-files
   doc/fdl.texi
   doc/gendocs_template
+  doc/gendocs_template_min
   lib/alloca.c
   lib/alloca.in.h
   lib/allocator.c
@@ -1087,8 +1281,11 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/anytostr.c
   lib/areadlink.c
   lib/areadlink.h
+  lib/argmatch.c
+  lib/argmatch.h
   lib/asnprintf.c
   lib/asprintf.c
+  lib/assure.h
   lib/basename-lgpl.c
   lib/basename.c
   lib/binary-io.c
@@ -1108,6 +1305,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/careadlinkat.h
   lib/close.c
   lib/config.charset
+  lib/ctype.in.h
   lib/diffseq.h
   lib/dirname-lgpl.c
   lib/dirname.c
@@ -1127,6 +1325,7 @@ AC_DEFUN([gl_FILE_LIST], [
   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
@@ -1166,6 +1365,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/inttostr.c
   lib/inttostr.h
   lib/inttypes.in.h
+  lib/isblank.c
   lib/iswblank.c
   lib/itold.c
   lib/langinfo.in.h
@@ -1219,6 +1419,8 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/quotearg.c
   lib/quotearg.h
   lib/raise.c
+  lib/rawmemchr.c
+  lib/rawmemchr.valgrind
   lib/readlink.c
   lib/ref-add.sin
   lib/ref-del.sin
@@ -1229,6 +1431,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/regex_internal.h
   lib/regexec.c
   lib/secure_getenv.c
+  lib/setenv.c
   lib/sh-quote.c
   lib/sh-quote.h
   lib/sig-handler.c
@@ -1281,8 +1484,11 @@ AC_DEFUN([gl_FILE_LIST], [
   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
@@ -1300,6 +1506,7 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/uniwidth/cjk.h
   lib/uniwidth/width.c
   lib/unlocked-io.h
+  lib/unsetenv.c
   lib/vasnprintf.c
   lib/vasnprintf.h
   lib/vasprintf.c
@@ -1335,7 +1542,9 @@ AC_DEFUN([gl_FILE_LIST], [
   lib/xvasprintf.c
   lib/xvasprintf.h
   m4/00gnulib.m4
+  m4/absolute-header.m4
   m4/alloca.m4
+  m4/arpa_inet_h.m4
   m4/btowc.m4
   m4/c-stack.m4
   m4/clock_time.m4
@@ -1343,6 +1552,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/codeset.m4
   m4/config-h.m4
   m4/configmake.m4
+  m4/ctype.m4
   m4/dirname.m4
   m4/double-slash-root.m4
   m4/dup2.m4
@@ -1358,11 +1568,13 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/fcntl_h.m4
   m4/fdopen.m4
   m4/filenamecat.m4
+  m4/flexmember.m4
   m4/float_h.m4
   m4/fnmatch.m4
   m4/fpieee.m4
   m4/freopen.m4
   m4/fstat.m4
+  m4/ftruncate.m4
   m4/getcwd.m4
   m4/getdtablesize.m4
   m4/getopt.m4
@@ -1377,12 +1589,15 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/iconv_h.m4
   m4/iconv_open.m4
   m4/include_next.m4
+  m4/inet_pton.m4
   m4/inline.m4
   m4/intmax_t.m4
   m4/inttostr.m4
   m4/inttypes-pri.m4
   m4/inttypes.m4
   m4/inttypes_h.m4
+  m4/ioctl.m4
+  m4/isblank.m4
   m4/iswblank.m4
   m4/langinfo_h.m4
   m4/largefile.m4
@@ -1420,19 +1635,25 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/msvc-inval.m4
   m4/msvc-nothrow.m4
   m4/multiarch.m4
+  m4/nanosleep.m4
+  m4/netinet_in_h.m4
   m4/nl_langinfo.m4
   m4/nocrash.m4
   m4/off_t.m4
   m4/open.m4
   m4/pathmax.m4
+  m4/perror.m4
+  m4/pipe.m4
   m4/printf.m4
   m4/putenv.m4
   m4/quote.m4
   m4/quotearg.m4
   m4/raise.m4
+  m4/rawmemchr.m4
   m4/readlink.m4
   m4/regex.m4
   m4/secure_getenv.m4
+  m4/select.m4
   m4/setenv.m4
   m4/setlocale.m4
   m4/sigaction.m4
@@ -1441,9 +1662,14 @@ AC_DEFUN([gl_FILE_LIST], [
   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/stat-time.m4
   m4/stat.m4
+  m4/stdalign.m4
   m4/stdarg.m4
   m4/stdbool.m4
   m4/stddef_h.m4
@@ -1453,6 +1679,7 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/stdlib_h.m4
   m4/strcase.m4
   m4/strerror.m4
+  m4/strerror_r.m4
   m4/strftime.m4
   m4/string_h.m4
   m4/strings_h.m4
@@ -1462,19 +1689,23 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/strtoull.m4
   m4/strtoumax.m4
   m4/symlink.m4
+  m4/sys_ioctl_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/time_h.m4
   m4/time_r.m4
+  m4/time_rz.m4
+  m4/timegm.m4
   m4/timespec.m4
   m4/tm_gmtoff.m4
   m4/unistd_h.m4
   m4/unlocked-io.m4
-  m4/usleep.m4
   m4/vararrays.m4
   m4/vasnprintf.m4
   m4/vasprintf.m4
@@ -1496,13 +1727,17 @@ AC_DEFUN([gl_FILE_LIST], [
   m4/xvasprintf.m4
   tests/init.sh
   tests/macros.h
+  tests/nap.h
   tests/signature.h
+  tests/test-accept.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-binary-io.c
   tests/test-binary-io.sh
+  tests/test-bind.c
   tests/test-bitrotate.c
   tests/test-btowc.c
   tests/test-btowc1.sh
@@ -1515,6 +1750,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-c-strcasecmp.c
   tests/test-c-strncasecmp.c
   tests/test-close.c
+  tests/test-connect.c
+  tests/test-ctype.c
   tests/test-dirname.c
   tests/test-dup2.c
   tests/test-environ.c
@@ -1540,6 +1777,8 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-freopen-safer.c
   tests/test-freopen.c
   tests/test-fstat.c
+  tests/test-ftruncate.c
+  tests/test-ftruncate.sh
   tests/test-fwrite.c
   tests/test-getcwd-lgpl.c
   tests/test-getdtablesize.c
@@ -1551,17 +1790,20 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-iconv-h.c
   tests/test-iconv.c
   tests/test-ignore-value.c
+  tests/test-inet_pton.c
   tests/test-init.sh
   tests/test-intprops.c
   tests/test-inttostr.c
   tests/test-inttypes.c
+  tests/test-ioctl.c
+  tests/test-isblank.c
   tests/test-iswblank.c
   tests/test-langinfo.c
+  tests/test-listen.c
   tests/test-locale.c
   tests/test-localeconv.c
   tests/test-lstat.c
   tests/test-lstat.h
-  tests/test-malloc-gnu.c
   tests/test-malloca.c
   tests/test-mbrtowc-w32-1.sh
   tests/test-mbrtowc-w32-2.sh
@@ -1574,6 +1816,7 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-mbrtowc2.sh
   tests/test-mbrtowc3.sh
   tests/test-mbrtowc4.sh
+  tests/test-mbrtowc5.sh
   tests/test-mbscasecmp.c
   tests/test-mbscasecmp.sh
   tests/test-mbsinit.c
@@ -1589,37 +1832,54 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-mbsstr3.c
   tests/test-mbsstr3.sh
   tests/test-memchr.c
+  tests/test-nanosleep.c
+  tests/test-netinet_in.c
   tests/test-nl_langinfo.c
   tests/test-nl_langinfo.sh
   tests/test-open.c
   tests/test-open.h
   tests/test-pathmax.c
+  tests/test-perror.c
+  tests/test-perror.sh
+  tests/test-perror2.c
+  tests/test-pipe.c
   tests/test-quotearg-simple.c
   tests/test-quotearg.h
   tests/test-raise.c
+  tests/test-rawmemchr.c
   tests/test-readlink.c
   tests/test-readlink.h
   tests/test-regex.c
+  tests/test-select-fd.c
+  tests/test-select-in.sh
+  tests/test-select-out.sh
+  tests/test-select-stdin.c
+  tests/test-select.c
+  tests/test-select.h
   tests/test-setenv.c
   tests/test-setlocale1.c
   tests/test-setlocale1.sh
   tests/test-setlocale2.c
   tests/test-setlocale2.sh
+  tests/test-setsockopt.c
   tests/test-sh-quote.c
   tests/test-sigaction.c
   tests/test-signal-h.c
   tests/test-sigprocmask.c
   tests/test-sleep.c
   tests/test-snprintf.c
+  tests/test-sockets.c
   tests/test-stat-time.c
   tests/test-stat.c
   tests/test-stat.h
+  tests/test-stdalign.c
   tests/test-stdbool.c
   tests/test-stddef.c
   tests/test-stdint.c
   tests/test-stdio.c
   tests/test-stdlib.c
   tests/test-strerror.c
+  tests/test-strerror_r.c
   tests/test-strftime.c
   tests/test-striconv.c
   tests/test-string.c
@@ -1629,16 +1889,20 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/test-strtoumax.c
   tests/test-symlink.c
   tests/test-symlink.h
+  tests/test-sys_ioctl.c
+  tests/test-sys_select.c
+  tests/test-sys_socket.c
   tests/test-sys_stat.c
   tests/test-sys_time.c
   tests/test-sys_types.c
+  tests/test-sys_uio.c
   tests/test-sys_wait.c
   tests/test-sys_wait.h
   tests/test-time.c
+  tests/test-timespec.c
   tests/test-unistd.c
   tests/test-unsetenv.c
   tests/test-update-copyright.sh
-  tests/test-usleep.c
   tests/test-vasnprintf.c
   tests/test-vasprintf.c
   tests/test-vc-list-files-cvs.sh
@@ -1672,23 +1936,46 @@ AC_DEFUN([gl_FILE_LIST], [
   tests/uniwidth/test-uc_width2.c
   tests/uniwidth/test-uc_width2.sh
   tests/zerosize-ptr.h
-  tests=lib/argmatch.c
-  tests=lib/argmatch.h
+  tests=lib/accept.c
+  tests=lib/arpa_inet.in.h
+  tests=lib/bind.c
+  tests=lib/connect.c
+  tests=lib/dtotimespec.c
   tests=lib/fdopen.c
   tests=lib/fpucw.h
+  tests=lib/ftruncate.c
   tests=lib/getcwd-lgpl.c
   tests=lib/getpagesize.c
   tests=lib/hash-pjw.c
   tests=lib/hash-pjw.h
+  tests=lib/inet_pton.c
+  tests=lib/ioctl.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/putenv.c
   tests=lib/same-inode.h
-  tests=lib/setenv.c
+  tests=lib/select.c
   tests=lib/setlocale.c
+  tests=lib/setsockopt.c
   tests=lib/sleep.c
   tests=lib/snprintf.c
+  tests=lib/socket.c
+  tests=lib/sockets.c
+  tests=lib/sockets.h
+  tests=lib/stdalign.in.h
+  tests=lib/strerror_r.c
   tests=lib/symlink.c
-  tests=lib/unsetenv.c
-  tests=lib/usleep.c
+  tests=lib/sys_ioctl.in.h
+  tests=lib/sys_select.in.h
+  tests=lib/sys_socket.c
+  tests=lib/sys_socket.in.h
+  tests=lib/sys_uio.in.h
+  tests=lib/timespec-add.c
+  tests=lib/timespec-sub.c
+  tests=lib/w32sock.h
   tests=lib/wctob.c
   tests=lib/wctomb-impl.h
   tests=lib/wctomb.c
index 6dac16b..4661bfc 100644 (file)
@@ -1,5 +1,5 @@
 # hard-locale.m4 serial 8
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a503646..aa159c5 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial 18 (gettext-0.18.2)
-dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc.
+# iconv.m4 serial 19 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -72,27 +72,33 @@ AC_DEFUN([AM_ICONV_LINK],
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      AC_RUN_IFELSE(
-        [AC_LANG_SOURCE([[
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        AC_RUN_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[
 #include <iconv.h>
 #include <string.h>
-int main ()
-{
-  int result = 0;
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+             ]],
+             [[int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -105,14 +111,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -124,14 +130,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304";
+        static ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = 1;
         char *outptr = buf;
         size_t outbytesleft = 1;
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -144,14 +150,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -171,17 +177,14 @@ int main ()
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
     result |= 16;
   return result;
-}]])],
-        [am_cv_func_iconv_works=yes],
-        [am_cv_func_iconv_works=no],
-        [
-changequote(,)dnl
-         case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-changequote([,])dnl
-        ])
+]])],
+          [am_cv_func_iconv_works=yes], ,
+          [case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac])
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
     ])
     case "$am_cv_func_iconv_works" in
index f0519d9..c95ecc2 100644 (file)
@@ -1,5 +1,5 @@
 # iconv_h.m4 serial 8
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 1dcf414..54e1dc8 100644 (file)
@@ -1,5 +1,5 @@
 # iconv_open.m4 serial 14
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 108d945..db0f2c0 100644 (file)
@@ -1,5 +1,5 @@
 # include_next.m4 serial 23
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -192,56 +192,9 @@ dnl until we can assume autoconf 2.64 or newer.
              if test AS_VAR_GET(gl_header_exists) = yes; then
              AS_VAR_POPDEF([gl_header_exists])
             ])
-               AC_LANG_CONFTEST(
-                 [AC_LANG_SOURCE(
-                    [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]]
-                  )])
-               dnl AIX "xlc -E" and "cc -E" omit #line directives for header
-               dnl files that contain only a #include of other header files and
-               dnl no non-comment tokens of their own. This leads to a failure
-               dnl to detect the absolute name of <dirent.h>, <signal.h>,
-               dnl <poll.h> and others. The workaround is to force preservation
-               dnl of comments through option -C. This ensures all necessary
-               dnl #line directives are present. GCC supports option -C as well.
-               case "$host_os" in
-                 aix*) gl_absname_cpp="$ac_cpp -C" ;;
-                 *)    gl_absname_cpp="$ac_cpp" ;;
-               esac
-changequote(,)
-               case "$host_os" in
-                 mingw*)
-                   dnl For the sake of native Windows compilers (excluding gcc),
-                   dnl treat backslash as a directory separator, like /.
-                   dnl Actually, these compilers use a double-backslash as
-                   dnl directory separator, inside the
-                   dnl   # line "filename"
-                   dnl directives.
-                   gl_dirsep_regex='[/\\]'
-                   ;;
-                 *)
-                   gl_dirsep_regex='\/'
-                   ;;
-               esac
-               dnl A sed expression that turns a string into a basic regular
-               dnl expression, for use within "/.../".
-               gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
-changequote([,])
-               gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \
-                                        | 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/
-changequote(,)dnl
-                   s|^/[^/]|//&|
-changequote([,])dnl
-                   p
-                   q
-                 }'
-               dnl eval is necessary to expand gl_absname_cpp.
-               dnl Ultrix and Pyramid sh refuse to redirect output of eval,
-               dnl so use subshell.
-               AS_VAR_SET(gl_next_header,
-                 ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD |
-                      sed -n "$gl_absolute_header_sed"`'"'])
+           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'>'])
diff --git a/m4/inet_pton.m4 b/m4/inet_pton.m4
new file mode 100644 (file)
index 0000000..4f5db71
--- /dev/null
@@ -0,0 +1,68 @@
+# inet_pton.m4 serial 17
+dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_INET_PTON],
+[
+  AC_REQUIRE([gl_ARPA_INET_H_DEFAULTS])
+
+  dnl Persuade Solaris <arpa/inet.h> to declare inet_pton.
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([AC_C_RESTRICT])
+
+  dnl Most platforms that provide inet_pton define it in libc.
+  dnl Solaris 8..10 provide inet_pton in libnsl instead.
+  dnl Solaris 2.6..7 provide inet_pton in libresolv instead.
+  dnl Native Windows provides it in -lws2_32 instead, with a declaration in
+  dnl <ws2tcpip.h>, and it uses stdcall calling convention, not cdecl
+  dnl (hence we cannot use AC_CHECK_FUNCS, AC_SEARCH_LIBS to find it).
+  HAVE_INET_PTON=1
+  INET_PTON_LIB=
+  gl_PREREQ_SYS_H_WINSOCK2
+  if test $HAVE_WINSOCK2_H = 1; then
+    AC_CHECK_DECLS([inet_pton],,, [[#include <ws2tcpip.h>]])
+    if test $ac_cv_have_decl_inet_pton = yes; then
+      dnl It needs to be overridden, because the stdcall calling convention
+      dnl is not compliant with POSIX.
+      REPLACE_INET_PTON=1
+      INET_PTON_LIB="-lws2_32"
+    else
+      HAVE_DECL_INET_PTON=0
+      HAVE_INET_PTON=0
+    fi
+  else
+    gl_save_LIBS=$LIBS
+    AC_SEARCH_LIBS([inet_pton], [nsl resolv], [],
+      [AC_CHECK_FUNCS([inet_pton])
+       if test $ac_cv_func_inet_pton = no; then
+         HAVE_INET_PTON=0
+       fi
+      ])
+    LIBS=$gl_save_LIBS
+
+    if test "$ac_cv_search_inet_pton" != "no" \
+       && test "$ac_cv_search_inet_pton" != "none required"; then
+      INET_PTON_LIB="$ac_cv_search_inet_pton"
+    fi
+
+    AC_CHECK_HEADERS_ONCE([netdb.h])
+    AC_CHECK_DECLS([inet_pton],,,
+      [[#include <arpa/inet.h>
+        #if HAVE_NETDB_H
+        # include <netdb.h>
+        #endif
+      ]])
+    if test $ac_cv_have_decl_inet_pton = no; then
+      HAVE_DECL_INET_PTON=0
+    fi
+  fi
+  AC_SUBST([INET_PTON_LIB])
+])
+
+# Prerequisites of lib/inet_pton.c.
+AC_DEFUN([gl_PREREQ_INET_PTON], [
+  AC_REQUIRE([gl_SOCKET_FAMILIES])
+])
index 3a50621..28fd2d0 100644 (file)
@@ -1,5 +1,5 @@
 # inline.m4 serial 4
-dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ab97d39..8a045f6 100644 (file)
@@ -1,5 +1,5 @@
 # intlmacosx.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index 6ea7053..9559acc 100644 (file)
@@ -1,5 +1,5 @@
 # intmax_t.m4 serial 8
-dnl Copyright (C) 1997-2004, 2006-2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2016 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 1a0ce74..fd4ba76 100644 (file)
@@ -1,5 +1,5 @@
 #serial 8
-dnl Copyright (C) 2004-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2004-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 e5a1e05..ae20183 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes-pri.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1997-2002, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2002, 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3b483d3..61cdb1a 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes.m4 serial 26
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -148,6 +148,7 @@ AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
   HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
   HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
   REPLACE_STRTOIMAX=0;   AC_SUBST([REPLACE_STRTOIMAX])
+  REPLACE_STRTOUMAX=0;   AC_SUBST([REPLACE_STRTOUMAX])
   INT32_MAX_LT_INTMAX_MAX=1;  AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
   INT64_MAX_EQ_LONG_MAX='defined _LP64';  AC_SUBST([INT64_MAX_EQ_LONG_MAX])
   PRI_MACROS_BROKEN=0;   AC_SUBST([PRI_MACROS_BROKEN])
index 5f05ac5..7657119 100644 (file)
@@ -1,5 +1,5 @@
 # inttypes_h.m4 serial 10
-dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/ioctl.m4 b/m4/ioctl.m4
new file mode 100644 (file)
index 0000000..c688a64
--- /dev/null
@@ -0,0 +1,41 @@
+# ioctl.m4 serial 4
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_IOCTL],
+[
+  AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  HAVE_IOCTL=1
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    dnl Even if the 'socket' module is not used here, another part of the
+    dnl application may use it and pass file descriptors that refer to
+    dnl sockets to the ioctl() function. So enable the support for sockets.
+    HAVE_IOCTL=0
+  else
+    AC_CHECK_FUNCS([ioctl])
+    dnl On glibc systems, the second parameter is 'unsigned long int request',
+    dnl not 'int request'. We cannot simply cast the function pointer, but
+    dnl instead need a wrapper.
+    AC_CACHE_CHECK([for ioctl with POSIX signature],
+      [gl_cv_func_ioctl_posix_signature],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[#include <sys/ioctl.h>]],
+            [[extern
+              #ifdef __cplusplus
+              "C"
+              #endif
+              int ioctl (int, int, ...);
+            ]])
+         ],
+         [gl_cv_func_ioctl_posix_signature=yes],
+         [gl_cv_func_ioctl_posix_signature=no])
+      ])
+    if test $gl_cv_func_ioctl_posix_signature != yes; then
+      REPLACE_IOCTL=1
+    fi
+  fi
+])
diff --git a/m4/isblank.m4 b/m4/isblank.m4
new file mode 100644 (file)
index 0000000..63d4a39
--- /dev/null
@@ -0,0 +1,17 @@
+# isblank.m4 serial 3
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_ISBLANK],
+[
+  dnl Persuade glibc <ctype.h> to declare isblank().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([gl_CTYPE_H_DEFAULTS])
+  AC_CHECK_FUNCS_ONCE([isblank])
+  if test $ac_cv_func_isblank = no; then
+    HAVE_ISBLANK=0
+  fi
+])
index b736497..0639073 100644 (file)
@@ -1,5 +1,5 @@
 # iswblank.m4 serial 4
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 73bef8b..edbbe76 100644 (file)
@@ -1,5 +1,5 @@
 # langinfo_h.m4 serial 7
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 1e605e3..8bbdfaa 100644 (file)
@@ -1,6 +1,6 @@
 # Enable large files on systems where this is not the default.
 
-# Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc.
+# Copyright 1992-1996, 1998-2016 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 c145e47..6209de6 100644 (file)
@@ -1,5 +1,5 @@
 # lib-ld.m4 serial 6
-dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 073f040..2f51855 100644 (file)
@@ -1,5 +1,5 @@
 # lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 60908e8..6851031 100644 (file)
@@ -1,5 +1,5 @@
 # lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3f3e7db..5bfa092 100644 (file)
@@ -1,5 +1,5 @@
 # libsigsegv.m4 serial 4
-dnl Copyright (C) 2002-2003, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 d105c72..f911216 100644 (file)
@@ -1,5 +1,5 @@
 # libunistring-base.m4 serial 5
-dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 2e93e58..22c311b 100644 (file)
@@ -1,5 +1,5 @@
 # localcharset.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ef199e3..92896a0 100644 (file)
@@ -1,5 +1,5 @@
 # locale-fr.m4 serial 17
-dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 132a3e7..f222a08 100644 (file)
@@ -1,5 +1,5 @@
 # locale-ja.m4 serial 12
-dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 aeb5615..75aa295 100644 (file)
@@ -1,5 +1,5 @@
 # locale-tr.m4 serial 10
-dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4eed73f..2271f77 100644 (file)
@@ -1,5 +1,5 @@
 # locale-zh.m4 serial 12
-dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 8bd12e8..563f8f8 100644 (file)
@@ -1,5 +1,5 @@
 # locale_h.m4 serial 19
-dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 b8bb596..6e1dbf1 100644 (file)
@@ -1,5 +1,5 @@
 # localeconv.m4 serial 1
-dnl Copyright (C) 2012-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3af6ab5..36d8b12 100644 (file)
@@ -1,5 +1,5 @@
 # longlong.m4 serial 17
-dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1999-2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 5f4db64..e143d5c 100644 (file)
@@ -1,6 +1,6 @@
-# serial 26
+# serial 27
 
-# Copyright (C) 1997-2001, 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2001, 2003-2016 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -37,30 +37,28 @@ AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
     [gl_cv_func_lstat_dereferences_slashed_symlink],
     [rm -f conftest.sym conftest.file
      echo >conftest.file
-     if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
-       AC_RUN_IFELSE(
-         [AC_LANG_PROGRAM(
-            [AC_INCLUDES_DEFAULT],
-            [[struct stat sbuf;
-              /* Linux will dereference the symlink and fail, as required by
-                 POSIX.  That is better in the sense that it means we will not
-                 have to compile and use the lstat wrapper.  */
-              return lstat ("conftest.sym/", &sbuf) == 0;
-            ]])],
-         [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
-         [gl_cv_func_lstat_dereferences_slashed_symlink=no],
-         [case "$host_os" in
-                    # Guess yes on glibc systems.
-            *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
-                    # If we don't know, assume the worst.
-            *)      gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
-          esac
-         ])
-     else
-       # If the 'ln -s' command failed, then we probably don't even
-       # have an lstat function.
-       gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
-     fi
+     AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [AC_INCLUDES_DEFAULT],
+          [[struct stat sbuf;
+            if (symlink ("conftest.file", "conftest.sym") != 0)
+              return 1;
+            /* Linux will dereference the symlink and fail, as required by
+               POSIX.  That is better in the sense that it means we will not
+               have to compile and use the lstat wrapper.  */
+            return lstat ("conftest.sym/", &sbuf) == 0;
+          ]])],
+       [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+       [gl_cv_func_lstat_dereferences_slashed_symlink=no],
+       [case "$host_os" in
+          *-gnu*)
+            # Guess yes on glibc systems.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+          *)
+            # If we don't know, assume the worst.
+            gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
+        esac
+       ])
      rm -f conftest.sym conftest.file
     ])
   case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
index 4b24a0b..c393690 100644 (file)
@@ -1,13 +1,13 @@
-# malloc.m4 serial 14
-dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+# malloc.m4 serial 15
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 m4_version_prereq([2.70], [] ,[
 
-# This is taken from the following Autoconf patch:
-# http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9
+# This is adapted with modifications from upstream Autoconf here:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=04be2b7a29d65d9a08e64e8e56e594c91749598c
 AC_DEFUN([_AC_FUNC_MALLOC_IF],
 [
   AC_REQUIRE([AC_HEADER_STDC])dnl
@@ -23,7 +23,10 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF],
             char *malloc ();
             #endif
           ]],
-          [[return ! malloc (0);]])
+          [[char *p = malloc (0);
+            int result = !p;
+            free (p);
+            return result;]])
        ],
        [ac_cv_func_malloc_0_nonnull=yes],
        [ac_cv_func_malloc_0_nonnull=no],
index 791ce10..b368b20 100644 (file)
@@ -1,5 +1,5 @@
 # malloca.m4 serial 1
-dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2016 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 45a30af..90823b0 100644 (file)
@@ -1,5 +1,5 @@
-# manywarnings.m4 serial 5
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# manywarnings.m4 serial 8
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -93,28 +93,43 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
   fi
 
   # List all gcc warning categories.
+  # To compare this list to your installed GCC's, run this Bash command:
+  #
+  # comm -3 \
+  #  <(sed -n 's/^  *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \
+  #  <(gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort |
+  #      grep -v -x -f <(
+  #         awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec))
+
   gl_manywarn_set=
   for gl_manywarn_item in \
     -W \
     -Wabi \
     -Waddress \
+    -Waggressive-loop-optimizations \
     -Wall \
-    -Warray-bounds \
     -Wattributes \
     -Wbad-function-cast \
+    -Wbool-compare \
     -Wbuiltin-macro-redefined \
     -Wcast-align \
     -Wchar-subscripts \
+    -Wchkp \
     -Wclobbered \
     -Wcomment \
     -Wcomments \
     -Wcoverage-mismatch \
     -Wcpp \
+    -Wdate-time \
     -Wdeprecated \
     -Wdeprecated-declarations \
+    -Wdesignated-init \
     -Wdisabled-optimization \
+    -Wdiscarded-array-qualifiers \
+    -Wdiscarded-qualifiers \
     -Wdiv-by-zero \
     -Wdouble-promotion \
+    -Wduplicated-cond \
     -Wempty-body \
     -Wendif-labels \
     -Wenum-compare \
@@ -123,39 +138,47 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
     -Wformat-extra-args \
     -Wformat-nonliteral \
     -Wformat-security \
+    -Wformat-signedness \
     -Wformat-y2k \
     -Wformat-zero-length \
-    -Wformat=2 \
+    -Wframe-address \
     -Wfree-nonheap-object \
+    -Whsa \
+    -Wignored-attributes \
     -Wignored-qualifiers \
     -Wimplicit \
     -Wimplicit-function-declaration \
     -Wimplicit-int \
+    -Wincompatible-pointer-types \
     -Winit-self \
     -Winline \
+    -Wint-conversion \
     -Wint-to-pointer-cast \
     -Winvalid-memory-model \
     -Winvalid-pch \
     -Wjump-misses-init \
+    -Wlogical-not-parentheses \
     -Wlogical-op \
     -Wmain \
     -Wmaybe-uninitialized \
+    -Wmemset-transposed-args \
+    -Wmisleading-indentation \
     -Wmissing-braces \
     -Wmissing-declarations \
     -Wmissing-field-initializers \
-    -Wmissing-format-attribute \
     -Wmissing-include-dirs \
-    -Wmissing-noreturn \
     -Wmissing-parameter-type \
     -Wmissing-prototypes \
-    -Wmudflap \
     -Wmultichar \
     -Wnarrowing \
     -Wnested-externs \
     -Wnonnull \
-    -Wnormalized=nfc \
+    -Wnonnull-compare \
+    -Wnull-dereference \
+    -Wodr \
     -Wold-style-declaration \
     -Wold-style-definition \
+    -Wopenmp-simd \
     -Woverflow \
     -Woverlength-strings \
     -Woverride-init \
@@ -166,9 +189,15 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
     -Wpointer-sign \
     -Wpointer-to-int-cast \
     -Wpragmas \
+    -Wreturn-local-addr \
     -Wreturn-type \
+    -Wscalar-storage-order \
     -Wsequence-point \
     -Wshadow \
+    -Wshift-count-negative \
+    -Wshift-count-overflow \
+    -Wshift-negative-value \
+    -Wsizeof-array-argument \
     -Wsizeof-pointer-memaccess \
     -Wstack-protector \
     -Wstrict-aliasing \
@@ -178,16 +207,19 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
     -Wsuggest-attribute=format \
     -Wsuggest-attribute=noreturn \
     -Wsuggest-attribute=pure \
+    -Wsuggest-final-methods \
+    -Wsuggest-final-types \
     -Wswitch \
+    -Wswitch-bool \
     -Wswitch-default \
     -Wsync-nand \
     -Wsystem-headers \
+    -Wtautological-compare \
     -Wtrampolines \
     -Wtrigraphs \
     -Wtype-limits \
     -Wuninitialized \
     -Wunknown-pragmas \
-    -Wunreachable-code \
     -Wunsafe-loop-optimizations \
     -Wunused \
     -Wunused-but-set-parameter \
@@ -211,6 +243,24 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
     gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
   done
 
+  # gcc --help=warnings outputs an unusual form for these options; list
+  # them here so that the above 'comm' command doesn't report a false match.
+  gl_manywarn_set="$gl_manywarn_set -Warray-bounds=2"
+  gl_manywarn_set="$gl_manywarn_set -Wnormalized=nfc"
+  gl_manywarn_set="$gl_manywarn_set -Wshift-overflow=2"
+  gl_manywarn_set="$gl_manywarn_set -Wunused-const-variable=2"
+
+  # These are needed for older GCC versions.
+  if test -n "$GCC"; then
+    case `($CC --version) 2>/dev/null` in
+      'gcc (GCC) '[[0-3]].* | \
+      'gcc (GCC) '4.[[0-7]].*)
+        gl_manywarn_set="$gl_manywarn_set -fdiagnostics-show-option"
+        gl_manywarn_set="$gl_manywarn_set -funit-at-a-time"
+          ;;
+    esac
+  fi
+
   # Disable specific options as needed.
   if test "$gl_cv_cc_nomfi_needed" = yes; then
     gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
index b18ecef..26484fa 100644 (file)
@@ -1,5 +1,5 @@
 # mbchar.m4 serial 9
-dnl Copyright (C) 2005-2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 9b5fced..3383ee4 100644 (file)
@@ -1,5 +1,5 @@
 # mbiter.m4 serial 7
-dnl Copyright (C) 2005, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4c9f388..d370fcc 100644 (file)
@@ -1,5 +1,5 @@
-# mbrtowc.m4 serial 25
-dnl Copyright (C) 2001-2002, 2004-2005, 2008-2013 Free Software Foundation,
+# mbrtowc.m4 serial 27  -*- coding: utf-8 -*-
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2016 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,
@@ -39,6 +39,8 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
       gl_MBRTOWC_NULL_ARG2
       gl_MBRTOWC_RETVAL
       gl_MBRTOWC_NUL_RETVAL
+      gl_MBRTOWC_EMPTY_INPUT
+      gl_MBRTOWC_C_LOCALE
       case "$gl_cv_func_mbrtowc_null_arg1" in
         *yes) ;;
         *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1],
@@ -67,6 +69,21 @@ AC_DEFUN([gl_FUNC_MBRTOWC],
            REPLACE_MBRTOWC=1
            ;;
       esac
+      case "$gl_cv_func_mbrtowc_empty_input" in
+        *yes) ;;
+        *) AC_DEFINE([MBRTOWC_EMPTY_INPUT_BUG], [1],
+             [Define if the mbrtowc function does not return (size_t) -2
+              for empty input.])
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
+      case $gl_cv_C_locale_sans_EILSEQ in
+        *yes) ;;
+        *) AC_DEFINE([C_LOCALE_MAYBE_EILSEQ], [1],
+             [Define to 1 if the C locale may have encoding errors.])
+           REPLACE_MBRTOWC=1
+           ;;
+      esac
     fi
   fi
 ])
@@ -533,6 +550,81 @@ int main ()
     ])
 ])
 
+dnl Test whether mbrtowc returns the correct value on empty input.
+
+AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT],
+[
+  AC_REQUIRE([AC_PROG_CC])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_CACHE_CHECK([whether mbrtowc works on empty input],
+    [gl_cv_func_mbrtowc_empty_input],
+    [
+      dnl Initial guess, used when cross-compiling or when no suitable locale
+      dnl is present.
+changequote(,)dnl
+      case "$host_os" in
+                     # Guess no on AIX and glibc systems.
+        aix* | *-gnu*)
+                    gl_cv_func_mbrtowc_empty_input="guessing no" ;;
+        *)          gl_cv_func_mbrtowc_empty_input="guessing yes" ;;
+      esac
+changequote([,])dnl
+      AC_RUN_IFELSE(
+        [AC_LANG_SOURCE([[
+           #include <wchar.h>
+           static wchar_t wc;
+           static mbstate_t mbs;
+           int
+           main (void)
+           {
+             return mbrtowc (&wc, "", 0, &mbs) != (size_t) -2;
+           }]])],
+        [gl_cv_func_mbrtowc_empty_input=yes],
+        [gl_cv_func_mbrtowc_empty_input=no],
+        [:])
+    ])
+])
+
+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
+
+AC_DEFUN([gl_MBRTOWC_C_LOCALE],
+[
+  AC_CACHE_CHECK([whether the C locale is free of encoding errors],
+    [gl_cv_C_locale_sans_EILSEQ],
+    [
+     dnl Initial guess, used when cross-compiling or when no suitable locale
+     dnl is present.
+     gl_cv_C_locale_sans_EILSEQ="guessing no"
+
+     AC_RUN_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <limits.h>
+            #include <locale.h>
+            #include <wchar.h>
+          ]], [[
+            int i;
+            char *locale = setlocale (LC_ALL, "C");
+            if (! locale)
+              return 1;
+            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 1;
+              }
+            return 0;
+          ]])],
+      [gl_cv_C_locale_sans_EILSEQ=yes],
+      [gl_cv_C_locale_sans_EILSEQ=no],
+      [:])])
+])
+
 # Prerequisites of lib/mbrtowc.c.
 AC_DEFUN([gl_PREREQ_MBRTOWC], [
   :
index 2e6d092..88f0836 100644 (file)
@@ -1,5 +1,5 @@
 # mbsinit.m4 serial 8
-dnl Copyright (C) 2008, 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008, 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 b51b39f..7736529 100644 (file)
@@ -1,5 +1,5 @@
 # mbslen.m4 serial 2
-dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 c4934c2..3b5dc6e 100644 (file)
@@ -1,5 +1,5 @@
 # mbsrtowcs.m4 serial 13
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ed00117..0a8eae2 100644 (file)
@@ -1,5 +1,5 @@
 # mbstate_t.m4 serial 13
-dnl Copyright (C) 2000-2002, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2002, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 e479461..e770bbf 100644 (file)
@@ -1,5 +1,5 @@
 # mbtowc.m4 serial 2
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 2d8abe7..25d32f0 100644 (file)
@@ -1,5 +1,5 @@
 # memchr.m4 serial 12
-dnl Copyright (C) 2002-2004, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ac6c7cd..131e4a7 100644 (file)
@@ -1,6 +1,6 @@
 #serial 23
 
-# Copyright (C) 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003-2007, 2009-2016 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 faefb77..23cad73 100644 (file)
@@ -1,5 +1,5 @@
-# serial 25
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation,
+# serial 27
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,14 +7,30 @@ dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Jim Meyering.
 
+AC_DEFUN([gl_TIME_T_IS_SIGNED],
+[
+  AC_CACHE_CHECK([whether time_t is signed],
+    [gl_cv_time_t_is_signed],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([[#include <time.h>
+                          char time_t_signed[(time_t) -1 < 0 ? 1 : -1];]])],
+       [gl_cv_time_t_is_signed=yes],
+       [gl_cv_time_t_is_signed=no])])
+  if test $gl_cv_time_t_is_signed = yes; then
+    AC_DEFINE([TIME_T_IS_SIGNED], [1], [Define to 1 if time_t is signed.])
+  fi
+])
+
 AC_DEFUN([gl_FUNC_MKTIME],
 [
   AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+  AC_REQUIRE([gl_TIME_T_IS_SIGNED])
 
   dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
   dnl in Autoconf and because it invokes AC_LIBOBJ.
   AC_CHECK_HEADERS_ONCE([unistd.h])
   AC_CHECK_DECLS_ONCE([alarm])
+  AC_CHECK_FUNCS_ONCE([tzset])
   AC_REQUIRE([gl_MULTIARCH])
   if test $APPLE_UNIVERSAL_BUILD = 1; then
     # A universal build on Apple Mac OS X platforms.
@@ -169,7 +185,6 @@ main ()
   time_t t, delta;
   int i, j;
   int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
-  int time_t_signed = ! ((time_t) 0 < (time_t) -1);
 
 #if HAVE_DECL_ALARM
   /* This test makes some buggy mktime implementations loop.
@@ -179,11 +194,11 @@ main ()
   alarm (60);
 #endif
 
-  time_t_max = (! time_t_signed
+  time_t_max = (! TIME_T_IS_SIGNED
                 ? (time_t) -1
                 : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
                    * 2 + 1));
-  time_t_min = (! time_t_signed
+  time_t_min = (! TIME_T_IS_SIGNED
                 ? (time_t) 0
                 : time_t_signed_magnitude
                 ? ~ (time_t) 0
index 9b60ddf..853c89d 100644 (file)
@@ -1,5 +1,5 @@
 # mmap-anon.m4 serial 10
-dnl Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 d5b66d4..0cd40db 100644 (file)
@@ -1,5 +1,5 @@
 # mode_t.m4 serial 2
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 9a6a47a..f5e4c89 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-inval.m4 serial 1
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a39618a..58f5c0b 100644 (file)
@@ -1,5 +1,5 @@
 # msvc-nothrow.m4 serial 1
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 552ec7e..43b5d05 100644 (file)
@@ -1,5 +1,5 @@
 # multiarch.m4 serial 7
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/nanosleep.m4 b/m4/nanosleep.m4
new file mode 100644 (file)
index 0000000..12914d4
--- /dev/null
@@ -0,0 +1,148 @@
+# serial 36
+
+dnl From Jim Meyering.
+dnl Check for the nanosleep function.
+dnl If not found, use the supplied replacement.
+dnl
+
+# Copyright (C) 1999-2001, 2003-2016 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_FUNC_NANOSLEEP],
+[
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ 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])
+
+ 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])
+ AC_SEARCH_LIBS([nanosleep], [rt posix4],
+                [test "$ac_cv_search_nanosleep" = "none required" ||
+                 LIB_NANOSLEEP=$ac_cv_search_nanosleep])
+ if test "x$ac_cv_search_nanosleep" != xno; then
+   dnl The system has a nanosleep function.
+
+   AC_REQUIRE([gl_MULTIARCH])
+   if test $APPLE_UNIVERSAL_BUILD = 1; then
+     # A universal build on Apple Mac OS X platforms.
+     # The test result would be 'no (mishandles large arguments)' in 64-bit
+     # mode but 'yes' in 32-bit mode. But we need a configuration result that
+     # is valid in both modes.
+     gl_cv_func_nanosleep='no (mishandles large arguments)'
+   fi
+
+   AC_CACHE_CHECK([for working nanosleep],
+    [gl_cv_func_nanosleep],
+    [
+     AC_RUN_IFELSE(
+       [AC_LANG_SOURCE([[
+          #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))
+          #define TYPE_MAXIMUM(t) \
+            ((t) (! TYPE_SIGNED (t) \
+                  ? (t) -1 \
+                  : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+          static void
+          check_for_SIGALRM (int sig)
+          {
+            if (sig != SIGALRM)
+              _exit (1);
+          }
+
+          int
+          main ()
+          {
+            static struct timespec ts_sleep;
+            static struct timespec ts_remaining;
+            static struct sigaction act;
+            /* Test for major problems first.  */
+            if (! nanosleep)
+              return 2;
+            act.sa_handler = check_for_SIGALRM;
+            sigemptyset (&act.sa_mask);
+            sigaction (SIGALRM, &act, NULL);
+            ts_sleep.tv_sec = 0;
+            ts_sleep.tv_nsec = 1;
+            alarm (1);
+            if (nanosleep (&ts_sleep, NULL) != 0)
+              return 3;
+            /* Test for a minor problem: the handling of large arguments.  */
+            ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
+            ts_sleep.tv_nsec = 999999999;
+            alarm (1);
+            if (nanosleep (&ts_sleep, &ts_remaining) != -1)
+              return 4;
+            if (errno != EINTR)
+              return 5;
+            if (ts_remaining.tv_sec <= TYPE_MAXIMUM (time_t) - 10)
+              return 6;
+            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;;
+        esac],
+       [case "$host_os" in dnl ((
+          linux*) # Guess it halfway works when the kernel is Linux.
+            gl_cv_func_nanosleep='guessing no (mishandles large arguments)' ;;
+          *)      # If we don't know, assume the worst.
+            gl_cv_func_nanosleep='guessing no' ;;
+        esac
+       ])
+    ])
+   case "$gl_cv_func_nanosleep" in
+     *yes)
+       REPLACE_NANOSLEEP=0
+       ;;
+     *)
+       REPLACE_NANOSLEEP=1
+       case "$gl_cv_func_nanosleep" in
+         *"mishandles large arguments"*)
+           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
+ else
+   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
+])
diff --git a/m4/netinet_in_h.m4 b/m4/netinet_in_h.m4
new file mode 100644 (file)
index 0000000..93dcc68
--- /dev/null
@@ -0,0 +1,31 @@
+# netinet_in_h.m4 serial 5
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_HEADER_NETINET_IN],
+[
+  AC_CACHE_CHECK([whether <netinet/in.h> is self-contained],
+    [gl_cv_header_netinet_in_h_selfcontained],
+    [
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <netinet/in.h>]], [[]])],
+        [gl_cv_header_netinet_in_h_selfcontained=yes],
+        [gl_cv_header_netinet_in_h_selfcontained=no])
+    ])
+  if test $gl_cv_header_netinet_in_h_selfcontained = yes; then
+    NETINET_IN_H=''
+  else
+    NETINET_IN_H='netinet/in.h'
+    AC_CHECK_HEADERS([netinet/in.h])
+    gl_CHECK_NEXT_HEADERS([netinet/in.h])
+    if test $ac_cv_header_netinet_in_h = yes; then
+      HAVE_NETINET_IN_H=1
+    else
+      HAVE_NETINET_IN_H=0
+    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 25e2101..a2f7196 100644 (file)
@@ -1,5 +1,5 @@
 # nl_langinfo.m4 serial 5
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 8f8a147..53cdc8b 100644 (file)
--- a/m4/nls.m4
+++ b/m4/nls.m4
@@ -1,5 +1,5 @@
 # nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation,
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
index 105b884..d8dd8f1 100644 (file)
@@ -1,5 +1,5 @@
 # nocrash.m4 serial 4
-dnl Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2005, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -110,11 +110,12 @@ nocrash_init (void)
 #else
 /* Avoid a crash on POSIX systems.  */
 #include <signal.h>
+#include <unistd.h>
 /* A POSIX signal handler.  */
 static void
 exception_handler (int sig)
 {
-  exit (1);
+  _exit (1);
 }
 static void
 nocrash_init (void)
index d355d01..282751b 100644 (file)
@@ -1,5 +1,5 @@
 # off_t.m4 serial 1
-dnl Copyright (C) 2012-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a6cb101..53d3038 100644 (file)
@@ -1,5 +1,5 @@
 # open.m4 serial 14
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 e11bf57..6f8e59a 100644 (file)
@@ -1,5 +1,5 @@
 # pathmax.m4 serial 10
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 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/perror.m4 b/m4/perror.m4
new file mode 100644 (file)
index 0000000..743ab7a
--- /dev/null
@@ -0,0 +1,63 @@
+# perror.m4 serial 6
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_PERROR],
+[
+  AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([gl_FUNC_STRERROR_R])
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+  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
+    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
+  fi
+  case ${gl_cv_func_strerror_r_works-unset} in
+    unset|*yes)
+      AC_CACHE_CHECK([whether perror matches strerror],
+        [gl_cv_func_perror_works],
+        [AC_RUN_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <errno.h>
+                #include <stdio.h>
+                #include <stdlib.h>
+                #include <string.h>
+              ]],
+              [[char *str = strerror (-1);
+                if (!getenv("CONFTEST_OUTPUT")) return 0;
+                if (!str) str = "";
+                puts (str);
+                errno = -1;
+                perror ("");
+                return 0;
+              ]])],
+           [if CONFTEST_OUTPUT=1 ./conftest$EXEEXT >conftest.txt1 2>conftest.txt2 \
+               && cmp conftest.txt1 conftest.txt2 >/dev/null; then
+              gl_cv_func_perror_works=yes
+            else
+              gl_cv_func_perror_works=no
+            fi
+            rm -rf conftest.txt1 conftest.txt2],
+           [gl_cv_func_perror_works=no],
+           [dnl Guess no when cross-compiling.
+            gl_cv_func_perror_works="guessing no"
+           ])
+        ])
+      if test "$gl_cv_func_perror_works" != yes; then
+        REPLACE_PERROR=1
+      fi
+      ;;
+    *)
+      dnl The system's perror() probably inherits the bugs in the
+      dnl system's strerror_r(). Replace it.
+      REPLACE_PERROR=1
+      ;;
+  esac
+])
diff --git a/m4/pipe.m4 b/m4/pipe.m4
new file mode 100644 (file)
index 0000000..0fe6975
--- /dev/null
@@ -0,0 +1,15 @@
+# pipe.m4 serial 2
+dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_PIPE],
+[
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+
+  AC_CHECK_FUNCS_ONCE([pipe])
+  if test $ac_cv_func_pipe != yes; then
+    HAVE_PIPE=0
+  fi
+])
index f395723..84659ea 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,5 +1,5 @@
-# po.m4 serial 20 (gettext-0.18.2)
-dnl Copyright (C) 1995-2013 Free Software Foundation, Inc.
+# po.m4 serial 22 (gettext-0.19)
+dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -25,11 +25,12 @@ AC_DEFUN([AM_PO_SUBDIRS],
   AC_REQUIRE([AC_PROG_MAKE_SET])dnl
   AC_REQUIRE([AC_PROG_INSTALL])dnl
   AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+  AC_REQUIRE([AC_PROG_SED])dnl
   AC_REQUIRE([AM_NLS])dnl
 
   dnl Release version of the gettext macros. This is used to ensure that
   dnl the gettext macros and po/Makefile.in.in are in sync.
-  AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.19])
 
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
index ef44f78..e495e0c 100644 (file)
@@ -1,5 +1,5 @@
-# printf.m4 serial 50
-dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc.
+# printf.m4 serial 52
+dnl Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -61,7 +61,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_printf_sizes_c99="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_printf_sizes_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_sizes_c99="guessing no";;
@@ -220,7 +220,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on FreeBSD >= 6.
-           freebsd[1-5]*)        gl_cv_func_printf_infinite="guessing no";;
+           freebsd[1-5].*)       gl_cv_func_printf_infinite="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_infinite="guessing no";;
@@ -328,7 +328,7 @@ int main ()
 # ifdef WORDS_BIGENDIAN
 #  define LDBL80_WORDS(exponent,manthi,mantlo) \
      { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
-       ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16),    \
+       ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16),   \
        (unsigned int) (mantlo) << 16                                        \
      }
 # else
@@ -365,66 +365,51 @@ int main ()
   { /* Pseudo-NaN.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lf", x.value) <= 0)
       result |= 4;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Le", x.value) <= 0)
       result |= 4;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lg", x.value) <= 0)
       result |= 4;
   }
   { /* Pseudo-Infinity.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lf", x.value) <= 0)
       result |= 8;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Le", x.value) <= 0)
       result |= 8;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lg", x.value) <= 0)
       result |= 8;
   }
   { /* Pseudo-Zero.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lf", x.value) <= 0)
       result |= 16;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Le", x.value) <= 0)
       result |= 16;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lg", x.value) <= 0)
       result |= 16;
   }
   { /* Unnormalized number.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lf", x.value) <= 0)
       result |= 32;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Le", x.value) <= 0)
       result |= 32;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lg", x.value) <= 0)
       result |= 32;
   }
   { /* Pseudo-Denormal.  */
     static union { unsigned int word[4]; long double value; } x =
       { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
-    if (sprintf (buf, "%Lf", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lf", x.value) <= 0)
       result |= 64;
-    if (sprintf (buf, "%Le", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Le", x.value) <= 0)
       result |= 64;
-    if (sprintf (buf, "%Lg", x.value) < 0
-        || !strisnan (buf, 0, strlen (buf)))
+    if (sprintf (buf, "%Lg", x.value) <= 0)
       result |= 64;
   }
 #endif
@@ -442,7 +427,7 @@ changequote(,)dnl
                                          # Guess yes on glibc systems.
                    *-gnu*)               gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # Guess yes on FreeBSD >= 6.
-                   freebsd[1-5]*)        gl_cv_func_printf_infinite_long_double="guessing no";;
+                   freebsd[1-5].*)       gl_cv_func_printf_infinite_long_double="guessing no";;
                    freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
                                          # Guess yes on HP-UX >= 11.
                    hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
@@ -588,7 +573,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on FreeBSD >= 6.
-           freebsd[1-5]*)        gl_cv_func_printf_directive_f="guessing no";;
+           freebsd[1-5].*)       gl_cv_func_printf_directive_f="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_printf_directive_f="guessing no";;
@@ -1136,7 +1121,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_snprintf_truncation_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_truncation_c99="guessing no";;
@@ -1235,7 +1220,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_snprintf_retval_c99="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_snprintf_retval_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_retval_c99="guessing no";;
@@ -1316,7 +1301,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_snprintf_directive_n="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_snprintf_directive_n="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_snprintf_directive_n="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_snprintf_directive_n="guessing no";;
@@ -1458,7 +1443,7 @@ changequote(,)dnl
                                  # Guess yes on glibc systems.
            *-gnu*)               gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on FreeBSD >= 5.
-           freebsd[1-4]*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+           freebsd[1-4].*)       gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
            freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
                                  # Guess yes on Mac OS X >= 10.3.
            darwin[1-6].*)        gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
index 7b39123..b499f79 100644 (file)
@@ -1,5 +1,5 @@
 # progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index c33b5b5..c3c30d8 100644 (file)
@@ -1,5 +1,5 @@
 # putenv.m4 serial 20
-dnl Copyright (C) 2002-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ac49236..50894f8 100644 (file)
@@ -1,5 +1,5 @@
 # quote.m4 serial 6
-dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2016 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 bc0ef0c..2562375 100644 (file)
@@ -1,5 +1,5 @@
 # quotearg.m4 serial 9
-dnl Copyright (C) 2002, 2004-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 7df3317..71c1f4c 100644 (file)
@@ -1,5 +1,5 @@
 # raise.m4 serial 3
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/rawmemchr.m4 b/m4/rawmemchr.m4
new file mode 100644 (file)
index 0000000..d3ccb7e
--- /dev/null
@@ -0,0 +1,20 @@
+# rawmemchr.m4 serial 2
+dnl Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_RAWMEMCHR],
+[
+  dnl Persuade glibc <string.h> to declare rawmemchr().
+  AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+  AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+  AC_CHECK_FUNCS([rawmemchr])
+  if test $ac_cv_func_rawmemchr = no; then
+    HAVE_RAWMEMCHR=0
+  fi
+])
+
+# Prerequisites of lib/strchrnul.c.
+AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:])
index 96e5042..ede0378 100644 (file)
@@ -1,5 +1,5 @@
 # readlink.m4 serial 12
-dnl Copyright (C) 2003, 2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3334c10..abfd262 100644 (file)
@@ -1,6 +1,6 @@
-# serial 64
+# serial 66
 
-# Copyright (C) 1996-2001, 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2001, 2003-2016 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -28,6 +28,7 @@ AC_DEFUN([gl_REGEX],
     # If cross compiling, assume the test would fail and use the included
     # regex.c.
     AC_CHECK_DECLS_ONCE([alarm])
+    AC_CHECK_HEADERS_ONCE([malloc.h])
     AC_CACHE_CHECK([for working re_compile_pattern],
                    [gl_cv_func_re_compile_pattern_working],
       [AC_RUN_IFELSE(
@@ -37,9 +38,19 @@ AC_DEFUN([gl_REGEX],
             #include <locale.h>
             #include <limits.h>
             #include <string.h>
-            #if HAVE_DECL_ALARM
-            # include <unistd.h>
+
+            #if defined M_CHECK_ACTION || HAVE_DECL_ALARM
             # include <signal.h>
+            # include <unistd.h>
+            #endif
+
+            #if HAVE_MALLOC_H
+            # include <malloc.h>
+            #endif
+
+            #ifdef M_CHECK_ACTION
+            /* Exit with distinguishable exit code.  */
+            static void sigabrt_no_core (int sig) { raise (SIGTERM); }
             #endif
           ]],
           [[int result = 0;
@@ -49,11 +60,18 @@ AC_DEFUN([gl_REGEX],
             const char *s;
             struct re_registers regs;
 
+            /* Some builds of glibc go into an infinite loop on this
+               test.  Use alarm to force death, and mallopt to avoid
+               malloc recursion in diagnosing the corrupted heap. */
 #if HAVE_DECL_ALARM
-            /* Some builds of glibc go into an infinite loop on this test.  */
             signal (SIGALRM, SIG_DFL);
             alarm (2);
 #endif
+#ifdef M_CHECK_ACTION
+            signal (SIGABRT, sigabrt_no_core);
+            mallopt (M_CHECK_ACTION, 2);
+#endif
+
             if (setlocale (LC_ALL, "en_US.UTF-8"))
               {
                 {
@@ -75,6 +93,7 @@ AC_DEFUN([gl_REGEX],
                                       0, sizeof data - 1, &regs)
                            != -1)
                     result |= 1;
+                  regfree (&regex);
                 }
 
                 {
@@ -84,17 +103,29 @@ AC_DEFUN([gl_REGEX],
                      */
                   static char const pat[] = "[^x]x";
                   static char const data[] =
-                    "\xe1\x80\x80\xe1\x80\xbb\xe1\x80\xbd\xe1\x80\x94\xe1\x80"
-                    "\xba\xe1\x80\xaf\xe1\x80\x95\xe1\x80\xbax";
+                    /* <U1000><U103B><U103D><U1014><U103A><U102F><U1015><U103A> */
+                    "\xe1\x80\x80"
+                    "\xe1\x80\xbb"
+                    "\xe1\x80\xbd"
+                    "\xe1\x80\x94"
+                    "\xe1\x80\xba"
+                    "\xe1\x80\xaf"
+                    "\xe1\x80\x95"
+                    "\xe1\x80\xba"
+                    "x";
                   re_set_syntax (0);
                   memset (&regex, 0, sizeof regex);
                   s = re_compile_pattern (pat, sizeof pat - 1, &regex);
                   if (s)
                     result |= 1;
-                  else if (re_search (&regex, data, sizeof data - 1,
-                                      0, sizeof data - 1, 0)
-                           != 21)
-                    result |= 1;
+                  else
+                    {
+                      i = re_search (&regex, data, sizeof data - 1,
+                                     0, sizeof data - 1, 0);
+                      if (i != 0 && i != 21)
+                        result |= 1;
+                    }
+                  regfree (&regex);
                 }
 
                 if (! setlocale (LC_ALL, "C"))
@@ -255,7 +286,8 @@ AC_DEFUN([gl_PREREQ_REGEX],
   AC_REQUIRE([AC_C_RESTRICT])
   AC_REQUIRE([AC_TYPE_MBSTATE_T])
   AC_REQUIRE([gl_EEMALLOC])
+  AC_REQUIRE([gl_GLIBC21])
   AC_CHECK_HEADERS([libintl.h])
-  AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll])
+  AC_CHECK_FUNCS_ONCE([isblank iswctype])
   AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
 ])
index 5da5298..3983173 100644 (file)
@@ -1,5 +1,5 @@
 # Look up an environment variable more securely.
-dnl Copyright 2013 Free Software Foundation, Inc.
+dnl Copyright 2013-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,4 +22,5 @@ AC_DEFUN([gl_PREREQ_SECURE_GETENV], [
   if test $ac_cv_func___secure_getenv = no; then
     AC_CHECK_FUNCS([issetugid])
   fi
+  AC_CHECK_FUNCS_ONCE([getuid geteuid getgid getegid])
 ])
diff --git a/m4/select.m4 b/m4/select.m4
new file mode 100644 (file)
index 0000000..d193655
--- /dev/null
@@ -0,0 +1,114 @@
+# select.m4 serial 8
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_SELECT],
+[
+  AC_REQUIRE([gl_HEADER_SYS_SELECT])
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_SOCKETS])
+  if test "$ac_cv_header_winsock2_h" = yes; then
+    REPLACE_SELECT=1
+  else
+    dnl On Interix 3.5, select(0, NULL, NULL, NULL, timeout) fails with error
+    dnl EFAULT.
+    AC_CHECK_HEADERS_ONCE([sys/select.h])
+    AC_CACHE_CHECK([whether select supports a 0 argument],
+      [gl_cv_func_select_supports0],
+      [
+        AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#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;
+}]])], [gl_cv_func_select_supports0=yes], [gl_cv_func_select_supports0=no],
+          [
+changequote(,)dnl
+           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
+changequote([,])dnl
+          ])
+      ])
+    case "$gl_cv_func_select_supports0" in
+      *yes) ;;
+      *) REPLACE_SELECT=1 ;;
+    esac
+
+    dnl On FreeBSD 8.2, select() doesn't always reject bad fds.
+    AC_CACHE_CHECK([whether select detects invalid fds],
+      [gl_cv_func_select_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>
+]],[[
+  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;
+]])], [gl_cv_func_select_detects_ebadf=yes],
+      [gl_cv_func_select_detects_ebadf=no],
+          [
+           case "$host_os" in
+                    # Guess yes on glibc systems.
+            *-gnu*) gl_cv_func_select_detects_ebadf="guessing yes" ;;
+                    # If we don't know, assume the worst.
+            *)      gl_cv_func_select_detects_ebadf="guessing no" ;;
+           esac
+          ])
+      ])
+    case $gl_cv_func_select_detects_ebadf in
+      *yes) ;;
+      *) REPLACE_SELECT=1 ;;
+    esac
+  fi
+
+  dnl Determine the needed libraries.
+  LIB_SELECT="$LIBSOCKET"
+  if test $REPLACE_SELECT = 1; then
+    case "$host_os" in
+      mingw*)
+        dnl On the MSVC platform, the function MsgWaitForMultipleObjects
+        dnl (used in lib/select.c) requires linking with -luser32. On mingw,
+        dnl it is implicit.
+        AC_LINK_IFELSE(
+          [AC_LANG_SOURCE([[
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+int
+main ()
+{
+  MsgWaitForMultipleObjects (0, NULL, 0, 0, 0);
+  return 0;
+}]])],
+          [],
+          [LIB_SELECT="$LIB_SELECT -luser32"])
+        ;;
+    esac
+  fi
+  AC_SUBST([LIB_SELECT])
+])
index cb5351a..5d49aba 100644 (file)
@@ -1,5 +1,5 @@
 # setenv.m4 serial 26
-dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2004, 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 1133e65..a359069 100644 (file)
@@ -1,5 +1,5 @@
 # setlocale.m4 serial 4
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 116b068..9b43764 100644 (file)
@@ -1,5 +1,5 @@
 # sigaction.m4 serial 7
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3de9f27..bcfd7b4 100644 (file)
@@ -1,5 +1,5 @@
 # signal_h.m4 serial 18
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a00e704..5197c50 100644 (file)
@@ -1,5 +1,5 @@
 # signalblocking.m4 serial 14
-dnl Copyright (C) 2001-2002, 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2002, 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4b247ab..de69025 100644 (file)
@@ -1,5 +1,5 @@
 # size_max.m4 serial 10
-dnl Copyright (C) 2003, 2005-2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2005-2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a27baa6..99de5ee 100644 (file)
@@ -1,5 +1,5 @@
 # sleep.m4 serial 7
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3698e84..f876b55 100644 (file)
@@ -1,5 +1,5 @@
 # snprintf.m4 serial 6
-dnl Copyright (C) 2002-2004, 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/socketlib.m4 b/m4/socketlib.m4
new file mode 100644 (file)
index 0000000..5da64fc
--- /dev/null
@@ -0,0 +1,86 @@
+# socketlib.m4 serial 1
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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 gl_SOCKETLIB
+dnl Determines the library to use for socket functions.
+dnl Sets and AC_SUBSTs LIBSOCKET.
+
+AC_DEFUN([gl_SOCKETLIB],
+[
+  gl_PREREQ_SYS_H_WINSOCK2 dnl for HAVE_WINSOCK2_H
+  LIBSOCKET=
+  if test $HAVE_WINSOCK2_H = 1; then
+    dnl Native Windows API (not Cygwin).
+    AC_CACHE_CHECK([if we need to call WSAStartup in winsock2.h and -lws2_32],
+                   [gl_cv_func_wsastartup], [
+      gl_save_LIBS="$LIBS"
+      LIBS="$LIBS -lws2_32"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+#endif]], [[
+          WORD wVersionRequested = MAKEWORD(1, 1);
+          WSADATA wsaData;
+          int err = WSAStartup(wVersionRequested, &wsaData);
+          WSACleanup ();]])],
+        gl_cv_func_wsastartup=yes, gl_cv_func_wsastartup=no)
+      LIBS="$gl_save_LIBS"
+    ])
+    if test "$gl_cv_func_wsastartup" = "yes"; then
+      AC_DEFINE([WINDOWS_SOCKETS], [1], [Define if WSAStartup is needed.])
+      LIBSOCKET='-lws2_32'
+    fi
+  else
+    dnl Unix API.
+    dnl Solaris has most socket functions in libsocket.
+    dnl Haiku has most socket functions in libnetwork.
+    dnl BeOS has most socket functions in libnet.
+    AC_CACHE_CHECK([for library containing setsockopt], [gl_cv_lib_socket], [
+      gl_cv_lib_socket=
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();]], [[setsockopt();]])],
+        [],
+        [gl_save_LIBS="$LIBS"
+         LIBS="$gl_save_LIBS -lsocket"
+         AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();]], [[setsockopt();]])],
+           [gl_cv_lib_socket="-lsocket"])
+         if test -z "$gl_cv_lib_socket"; then
+           LIBS="$gl_save_LIBS -lnetwork"
+           AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();]], [[setsockopt();]])],
+             [gl_cv_lib_socket="-lnetwork"])
+           if test -z "$gl_cv_lib_socket"; then
+             LIBS="$gl_save_LIBS -lnet"
+             AC_LINK_IFELSE([AC_LANG_PROGRAM([[extern
+#ifdef __cplusplus
+"C"
+#endif
+char setsockopt();]], [[setsockopt();]])],
+               [gl_cv_lib_socket="-lnet"])
+           fi
+         fi
+         LIBS="$gl_save_LIBS"
+        ])
+      if test -z "$gl_cv_lib_socket"; then
+        gl_cv_lib_socket="none needed"
+      fi
+    ])
+    if test "$gl_cv_lib_socket" != "none needed"; then
+      LIBSOCKET="$gl_cv_lib_socket"
+    fi
+  fi
+  AC_SUBST([LIBSOCKET])
+])
diff --git a/m4/sockets.m4 b/m4/sockets.m4
new file mode 100644 (file)
index 0000000..7e77a62
--- /dev/null
@@ -0,0 +1,17 @@
+# sockets.m4 serial 7
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_SOCKETS],
+[
+  AC_REQUIRE([AC_C_INLINE])
+  AC_REQUIRE([gl_SOCKETLIB])
+  gl_PREREQ_SOCKETS
+])
+
+# Prerequisites of lib/sockets.c.
+AC_DEFUN([gl_PREREQ_SOCKETS], [
+  :
+])
diff --git a/m4/socklen.m4 b/m4/socklen.m4
new file mode 100644 (file)
index 0000000..634c43a
--- /dev/null
@@ -0,0 +1,77 @@
+# socklen.m4 serial 10
+dnl Copyright (C) 2005-2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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 Albert Chin, Windows fixes from Simon Josefsson.
+
+dnl Check for socklen_t: historically on BSD it is an int, and in
+dnl POSIX 1g it is a type of its own, but some platforms use different
+dnl types for the argument to getsockopt, getpeername, etc.:
+dnl HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
+dnl So we have to test to find something that will work.
+
+AC_DEFUN([gl_TYPE_SOCKLEN_T],
+  [AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])dnl
+   AC_CHECK_TYPE([socklen_t], ,
+     [AC_MSG_CHECKING([for socklen_t equivalent])
+      AC_CACHE_VAL([gl_cv_socklen_t_equiv],
+        [# 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
+           for t in int size_t "unsigned int" "long int" "unsigned long int"; do
+             AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+                 [[#include <sys/types.h>
+                   #include <sys/socket.h>
+
+                   int getpeername (int, $arg2 *, $t *);]],
+                 [[$t len;
+                  getpeername (0, 0, &len);]])],
+               [gl_cv_socklen_t_equiv="$t"])
+             test "$gl_cv_socklen_t_equiv" != "" && break
+           done
+           test "$gl_cv_socklen_t_equiv" != "" && break
+         done
+      ])
+      if test "$gl_cv_socklen_t_equiv" = ""; then
+        AC_MSG_ERROR([Cannot find a type to use in place of socklen_t])
+      fi
+      AC_MSG_RESULT([$gl_cv_socklen_t_equiv])
+      AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv],
+        [type to use in place of socklen_t if not defined])],
+     [gl_SOCKET_HEADERS])])
+
+dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find
+dnl it there too.  But on Cygwin, wc2tcpip.h must not be included.  Users
+dnl of this module should use the same include pattern as gl_SOCKET_HEADERS.
+dnl When you change this macro, keep also in sync:
+dnl   - gl_CHECK_SOCKET_HEADERS,
+dnl   - the Include section of modules/socklen.
+AC_DEFUN([gl_SOCKET_HEADERS],
+[
+/* <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>
+#if HAVE_SYS_SOCKET_H
+# include <sys/socket.h>
+#elif HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+#endif
+])
+
+dnl Tests for the existence of the header for socket facilities.
+dnl Defines the C macros HAVE_SYS_SOCKET_H, HAVE_WS2TCPIP_H.
+dnl This macro must match gl_SOCKET_HEADERS.
+AC_DEFUN([gl_CHECK_SOCKET_HEADERS],
+  [AC_CHECK_HEADERS_ONCE([sys/socket.h])
+   if test $ac_cv_header_sys_socket_h = no; then
+     dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+     dnl the check for those headers unconditional; yet cygwin reports
+     dnl that the headers are present but cannot be compiled (since on
+     dnl cygwin, all socket information should come from sys/socket.h).
+     AC_CHECK_HEADERS([ws2tcpip.h])
+   fi
+  ])
diff --git a/m4/sockpfaf.m4 b/m4/sockpfaf.m4
new file mode 100644 (file)
index 0000000..dce8b8f
--- /dev/null
@@ -0,0 +1,87 @@
+# sockpfaf.m4 serial 8
+dnl Copyright (C) 2004, 2006, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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 Test for some common socket protocol families (PF_INET, PF_INET6, ...)
+dnl and some common address families (AF_INET, AF_INET6, ...).
+dnl This test assumes that a system supports an address family if and only if
+dnl it supports the corresponding protocol family.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_SOCKET_FAMILIES],
+[
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  AC_CHECK_HEADERS_ONCE([netinet/in.h])
+
+  AC_MSG_CHECKING([for IPv4 sockets])
+  AC_CACHE_VAL([gl_cv_socket_ipv4],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif]],
+[[int x = AF_INET; struct in_addr y; struct sockaddr_in z;
+ if (&x && &y && &z) return 0;]])],
+       gl_cv_socket_ipv4=yes, gl_cv_socket_ipv4=no)])
+  AC_MSG_RESULT([$gl_cv_socket_ipv4])
+  if test $gl_cv_socket_ipv4 = yes; then
+    AC_DEFINE([HAVE_IPV4], [1], [Define to 1 if <sys/socket.h> defines AF_INET.])
+  fi
+
+  AC_MSG_CHECKING([for IPv6 sockets])
+  AC_CACHE_VAL([gl_cv_socket_ipv6],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif]],
+[[int x = AF_INET6; struct in6_addr y; struct sockaddr_in6 z;
+ if (&x && &y && &z) return 0;]])],
+       gl_cv_socket_ipv6=yes, gl_cv_socket_ipv6=no)])
+  AC_MSG_RESULT([$gl_cv_socket_ipv6])
+  if test $gl_cv_socket_ipv6 = yes; then
+    AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if <sys/socket.h> defines AF_INET6.])
+  fi
+])
+
+AC_DEFUN([gl_SOCKET_FAMILY_UNIX],
+[
+  AC_REQUIRE([gl_HEADER_SYS_SOCKET])
+  AC_CHECK_HEADERS_ONCE([sys/un.h])
+
+  AC_MSG_CHECKING([for UNIX domain sockets])
+  AC_CACHE_VAL([gl_cv_socket_unix],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SYS_UN_H
+#include <sys/un.h>
+#endif
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif]],
+[[int x = AF_UNIX; struct sockaddr_un y;
+ if (&x && &y) return 0;]])],
+       gl_cv_socket_unix=yes, gl_cv_socket_unix=no)])
+  AC_MSG_RESULT([$gl_cv_socket_unix])
+  if test $gl_cv_socket_unix = yes; then
+    AC_DEFINE([HAVE_UNIXSOCKET], [1], [Define to 1 if <sys/socket.h> defines AF_UNIX.])
+  fi
+])
index 6338134..3e7b9e6 100644 (file)
@@ -1,5 +1,5 @@
 # ssize_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2001-2003, 2006, 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2003, 2006, 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 d777f74..231cb74 100644 (file)
@@ -1,6 +1,6 @@
 # Checks for stat-related time functions.
 
-# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2013 Free Software
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2016 Free Software
 # Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
index 2456297..a794975 100644 (file)
@@ -1,6 +1,6 @@
 # serial 11
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 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/stdalign.m4 b/m4/stdalign.m4
new file mode 100644 (file)
index 0000000..49980cd
--- /dev/null
@@ -0,0 +1,57 @@
+# Check for stdalign.h that conforms to C11.
+
+dnl Copyright 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# Prepare for substituting <stdalign.h> if it is not supported.
+
+AC_DEFUN([gl_STDALIGN_H],
+[
+  AC_CACHE_CHECK([for working stdalign.h],
+    [gl_cv_header_working_stdalign_h],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <stdalign.h>
+            #include <stddef.h>
+
+            /* Test that alignof yields a result consistent with offsetof.
+               This catches GCC bug 52023
+               <http://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) \
+                 || (defined __APPLE__ && defined __MACH__ \
+                     ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+                     : __GNUC__) \
+                 || __HP_cc || __HP_aCC || __IBMC__ || __IBMCPP__ \
+                 || __ICC || 0x5110 <= __SUNPRO_C \
+                 || 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
+          ]])],
+       [gl_cv_header_working_stdalign_h=yes],
+       [gl_cv_header_working_stdalign_h=no])])
+
+  if test $gl_cv_header_working_stdalign_h = yes; then
+    STDALIGN_H=''
+  else
+    STDALIGN_H='stdalign.h'
+  fi
+
+  AC_SUBST([STDALIGN_H])
+  AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+])
index c087f61..ab3e7f5 100644 (file)
@@ -1,5 +1,5 @@
 # stdarg.m4 serial 6
-dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 80d5559..a556153 100644 (file)
@@ -1,11 +1,11 @@
 # Check for stdbool.h that conforms to C99.
 
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
-#serial 5
+#serial 6
 
 # Prepare for substituting <stdbool.h> if it is not supported.
 
@@ -43,21 +43,25 @@ AC_DEFUN([AC_CHECK_HEADER_STDBOOL],
         [AC_LANG_PROGRAM(
            [[
              #include <stdbool.h>
-             #ifndef bool
-              "error: bool is not defined"
-             #endif
-             #ifndef false
-              "error: false is not defined"
-             #endif
-             #if false
-              "error: false is not 0"
-             #endif
-             #ifndef true
-              "error: true is not defined"
-             #endif
-             #if true != 1
-              "error: true is not 1"
+
+             #if __cplusplus < 201103
+              #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
index 5da8ab1..c045c65 100644 (file)
@@ -1,6 +1,6 @@
-dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
-# stddef_h.m4 serial 4
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+dnl A placeholder for <stddef.h>, for platforms that have issues.
+# stddef_h.m4 serial 5
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -10,6 +10,9 @@ AC_DEFUN([gl_STDDEF_H],
   AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
   AC_REQUIRE([gt_TYPE_WCHAR_T])
   STDDEF_H=
+  AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h],
+    [[#include <stddef.h>
+    ]])
   if test $gt_cv_c_wchar_t = no; then
     HAVE_WCHAR_T=0
     STDDEF_H=stddef.h
@@ -43,5 +46,6 @@ AC_DEFUN([gl_STDDEF_H_DEFAULTS],
 [
   dnl Assume proper GNU behavior unless another module says otherwise.
   REPLACE_NULL=0;                AC_SUBST([REPLACE_NULL])
+  HAVE_MAX_ALIGN_T=1;            AC_SUBST([HAVE_MAX_ALIGN_T])
   HAVE_WCHAR_T=1;                AC_SUBST([HAVE_WCHAR_T])
 ])
index 27cdcdb..0b4b906 100644 (file)
@@ -1,5 +1,5 @@
-# stdint.m4 serial 43
-dnl Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# stdint.m4 serial 44
+dnl Copyright (C) 2001-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -70,6 +70,8 @@ AC_DEFUN_ONCE([gl_STDINT_H],
        AC_COMPILE_IFELSE([
          AC_LANG_PROGRAM([[
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
 #include <stdint.h>
 /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>.  */
 #if !(defined WCHAR_MIN && defined WCHAR_MAX)
@@ -218,6 +220,8 @@ struct s {
           AC_RUN_IFELSE([
             AC_LANG_PROGRAM([[
 #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#define __STDC_CONSTANT_MACROS 1
+#define __STDC_LIMIT_MACROS 1
 #include <stdint.h>
 ]
 gl_STDINT_INCLUDES
@@ -279,6 +283,29 @@ static const char *macro_values[] =
       ])
   fi
   if test "$gl_cv_header_working_stdint_h" = yes; then
+    dnl Now see whether the system <stdint.h> works without
+    dnl __STDC_CONSTANT_MACROS/__STDC_LIMIT_MACROS defined.
+    AC_CACHE_CHECK([whether stdint.h predates C++11],
+      [gl_cv_header_stdint_predates_cxx11_h],
+      [gl_cv_header_stdint_predates_cxx11_h=yes
+       AC_COMPILE_IFELSE([
+        AC_LANG_PROGRAM([[
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+]
+gl_STDINT_INCLUDES
+[
+intmax_t im = INTMAX_MAX;
+int32_t i32 = INT32_C (0x7fffffff);
+         ]])],
+         [gl_cv_header_stdint_predates_cxx11_h=no])])
+
+    if test "$gl_cv_header_stdint_predates_cxx11_h" = yes; then
+      AC_DEFINE([__STDC_CONSTANT_MACROS], [1],
+                [Define to 1 if the system <stdint.h> predates C++11.])
+      AC_DEFINE([__STDC_LIMIT_MACROS], [1],
+                [Define to 1 if the system <stdint.h> predates C++11.])
+    fi
     STDINT_H=
   else
     dnl Check for <sys/inttypes.h>, and for
index 511ab4e..f823b94 100644 (file)
@@ -1,5 +1,5 @@
 # stdint_h.m4 serial 9
-dnl Copyright (C) 1997-2004, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2004, 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ebade06..0e38758 100644 (file)
@@ -1,14 +1,41 @@
-# stdio_h.m4 serial 43
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+# stdio_h.m4 serial 46
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_STDIO_H],
 [
+  dnl For __USE_MINGW_ANSI_STDIO
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   gl_NEXT_HEADERS([stdio.h])
 
+  dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and
+  dnl inttypes.h behave like gnu instead of system; we must give our
+  dnl printf wrapper the right attribute to match.
+  AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros],
+    [gl_cv_func_printf_attribute_flavor],
+    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+       #define __STDC_FORMAT_MACROS 1
+       #include <stdio.h>
+       #include <inttypes.h>
+       /* For non-mingw systems, compilation will trivially succeed.
+          For mingw, compilation will succeed for older mingw (system
+          printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */
+       #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \
+         (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+       extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1];
+       #endif
+      ]])], [gl_cv_func_printf_attribute_flavor=system],
+      [gl_cv_func_printf_attribute_flavor=gnu])])
+  if test "$gl_cv_func_printf_attribute_flavor" = gnu; then
+    AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1],
+      [Define to 1 if printf and friends should be labeled with
+       attribute "__gnu_printf__" instead of "__printf__"])
+  fi
+
   dnl No need to create extra modules for these functions. Everyone who uses
   dnl <stdio.h> likely needs them.
   GNULIB_FSCANF=1
index 2027ab3..19107c4 100644 (file)
@@ -1,5 +1,5 @@
 # stdlib_h.m4 serial 42
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -55,6 +55,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   GNULIB_PTSNAME=0;       AC_SUBST([GNULIB_PTSNAME])
   GNULIB_PTSNAME_R=0;     AC_SUBST([GNULIB_PTSNAME_R])
   GNULIB_PUTENV=0;        AC_SUBST([GNULIB_PUTENV])
+  GNULIB_QSORT_R=0;       AC_SUBST([GNULIB_QSORT_R])
   GNULIB_RANDOM=0;        AC_SUBST([GNULIB_RANDOM])
   GNULIB_RANDOM_R=0;      AC_SUBST([GNULIB_RANDOM_R])
   GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX])
@@ -107,6 +108,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS],
   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_R=0;        AC_SUBST([REPLACE_RANDOM_R])
   REPLACE_REALLOC=0;         AC_SUBST([REPLACE_REALLOC])
   REPLACE_REALPATH=0;        AC_SUBST([REPLACE_REALPATH])
index 22bf57c..eefc047 100644 (file)
@@ -1,5 +1,5 @@
 # strcase.m4 serial 11
-dnl Copyright (C) 2002, 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 3989844..e286594 100644 (file)
@@ -1,5 +1,5 @@
 # strerror.m4 serial 17
-dnl Copyright (C) 2002, 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/strerror_r.m4 b/m4/strerror_r.m4
new file mode 100644 (file)
index 0000000..2318927
--- /dev/null
@@ -0,0 +1,173 @@
+# strerror_r.m4 serial 15
+dnl Copyright (C) 2002, 2007-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_STRERROR_R],
+[
+  AC_REQUIRE([gl_HEADER_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])
+  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
+          dnl The system's strerror_r has bugs.  Replace it.
+          *no) REPLACE_STRERROR_R=1 ;;
+        esac
+      else
+        dnl The system's strerror_r() has a wrong signature. Replace it.
+        REPLACE_STRERROR_R=1
+      fi
+    else
+      dnl The system's strerror_r() cannot know about the new errno values we
+      dnl add to <errno.h>, or any fix for strerror(0). Replace it.
+      REPLACE_STRERROR_R=1
+    fi
+  fi
+])
+
+# Prerequisites of lib/strerror_r.c.
+AC_DEFUN([gl_PREREQ_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])
+  AC_CHECK_FUNCS_ONCE([snprintf])
+])
+
+# Detect if strerror_r works, but without affecting whether a replacement
+# strerror_r will be used.
+AC_DEFUN([gl_FUNC_STRERROR_R_WORKS],
+[
+  AC_REQUIRE([gl_HEADER_ERRNO_H])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+  AC_REQUIRE([gl_FUNC_STRERROR_0])
+
+  AC_CHECK_FUNCS_ONCE([strerror_r])
+  if test $ac_cv_func_strerror_r = yes; then
+    if test "$ERRNO_H:$REPLACE_STRERROR_0" = :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);
+      AC_CACHE_CHECK([for strerror_r with POSIX signature],
+        [gl_cv_func_strerror_r_posix_signature],
+        [AC_COMPILE_IFELSE(
+           [AC_LANG_PROGRAM(
+              [[#include <string.h>
+                int strerror_r (int, char *, size_t);
+              ]],
+              [])],
+           [gl_cv_func_strerror_r_posix_signature=yes],
+           [gl_cv_func_strerror_r_posix_signature=no])
+        ])
+      if test $gl_cv_func_strerror_r_posix_signature = yes; then
+        dnl AIX 6.1 strerror_r fails by returning -1, not an error number.
+        dnl HP-UX 11.31 strerror_r always fails when the buffer length argument
+        dnl is less than 80.
+        dnl FreeBSD 8.s strerror_r claims failure on 0
+        dnl Mac OS X 10.5 strerror_r treats 0 like -1
+        dnl Solaris 10 strerror_r corrupts errno on failure
+        AC_CACHE_CHECK([whether strerror_r works],
+          [gl_cv_func_strerror_r_works],
+          [AC_RUN_IFELSE(
+             [AC_LANG_PROGRAM(
+                [[#include <errno.h>
+                  #include <string.h>
+                ]],
+                [[int result = 0;
+                  char buf[79];
+                  if (strerror_r (EACCES, buf, 0) < 0)
+                    result |= 1;
+                  errno = 0;
+                  if (strerror_r (EACCES, buf, sizeof buf) != 0)
+                    result |= 2;
+                  strcpy (buf, "Unknown");
+                  if (strerror_r (0, buf, sizeof buf) != 0)
+                    result |= 4;
+                  if (errno)
+                    result |= 8;
+                  if (strstr (buf, "nknown") || strstr (buf, "ndefined"))
+                    result |= 0x10;
+                  errno = 0;
+                  *buf = 0;
+                  if (strerror_r (-3, buf, sizeof buf) < 0)
+                    result |= 0x20;
+                  if (errno)
+                    result |= 0x40;
+                  if (!*buf)
+                    result |= 0x80;
+                  return result;
+                ]])],
+             [gl_cv_func_strerror_r_works=yes],
+             [gl_cv_func_strerror_r_works=no],
+             [
+changequote(,)dnl
+              case "$host_os" in
+                       # Guess no on AIX.
+                aix*)  gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess no on HP-UX.
+                hpux*) gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess no on BSD variants.
+                *bsd*)  gl_cv_func_strerror_r_works="guessing no";;
+                       # Guess yes otherwise.
+                *)     gl_cv_func_strerror_r_works="guessing yes";;
+              esac
+changequote([,])dnl
+             ])
+          ])
+      else
+        dnl The system's strerror() has a wrong signature.
+        dnl glibc >= 2.3.4 and cygwin 1.7.9 have a function __xpg_strerror_r.
+        AC_CHECK_FUNCS_ONCE([__xpg_strerror_r])
+        dnl In glibc < 2.14, __xpg_strerror_r does not populate buf on failure.
+        dnl In cygwin < 1.7.10, __xpg_strerror_r clobbers strerror's buffer.
+        if test $ac_cv_func___xpg_strerror_r = yes; then
+          AC_CACHE_CHECK([whether __xpg_strerror_r works],
+            [gl_cv_func_strerror_r_works],
+            [AC_RUN_IFELSE(
+               [AC_LANG_PROGRAM(
+                  [[#include <errno.h>
+                    #include <string.h>
+                    extern
+                    #ifdef __cplusplus
+                    "C"
+                    #endif
+                    int __xpg_strerror_r(int, char *, size_t);
+                  ]],
+                  [[int result = 0;
+                    char buf[256] = "^";
+                    char copy[256];
+                    char *str = strerror (-1);
+                    strcpy (copy, str);
+                    if (__xpg_strerror_r (-2, buf, 1) == 0)
+                      result |= 1;
+                    if (*buf)
+                      result |= 2;
+                    __xpg_strerror_r (-2, buf, 256);
+                    if (strcmp (str, copy))
+                      result |= 4;
+                    return result;
+                  ]])],
+               [gl_cv_func_strerror_r_works=yes],
+               [gl_cv_func_strerror_r_works=no],
+               [dnl Guess no on all platforms that have __xpg_strerror_r,
+                dnl at least until fixed glibc and cygwin are more common.
+                gl_cv_func_strerror_r_works="guessing no"
+               ])
+            ])
+        fi
+      fi
+    fi
+  fi
+])
index b31f495..9598e72 100644 (file)
@@ -1,6 +1,6 @@
 # serial 33
 
-# Copyright (C) 1996-1997, 1999-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2007, 2009-2016 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index cc5fbbb..0c5ec6f 100644 (file)
@@ -1,6 +1,6 @@
 # Configure a GNU-like replacement for <string.h>.
 
-# Copyright (C) 2007-2013 Free Software Foundation, Inc.
+# Copyright (C) 2007-2016 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 76ef242..62a62e2 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <strings.h>.
 # serial 6
 
-# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2016 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 a1f8274..ac48a22 100644 (file)
@@ -1,5 +1,5 @@
-# strndup.m4 serial 21
-dnl Copyright (C) 2002-2003, 2005-2013 Free Software Foundation, Inc.
+# strndup.m4 serial 22
+dnl Copyright (C) 2002-2003, 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -31,11 +31,14 @@ AC_DEFUN([gl_FUNC_STRNDUP],
   #endif
   char *strndup (const char *, size_t);
 #endif
+  int result;
   char *s;
   s = strndup ("some longer string", 15);
   free (s);
   s = strndup ("shorter string", 13);
-  return s[13] != '\0';]])],
+  result = s[13] != '\0';
+  free (s);
+  return result;]])],
          [gl_cv_func_strndup_works=yes],
          [gl_cv_func_strndup_works=no],
          [
index eae82b7..67b3859 100644 (file)
@@ -1,5 +1,5 @@
 # strnlen.m4 serial 13
-dnl Copyright (C) 2002-2003, 2005-2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2016 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 86d5cc1..0b760e1 100644 (file)
@@ -1,5 +1,5 @@
 # strptime.m4 serial 7
-dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 ad386da..78a67c7 100644 (file)
@@ -1,5 +1,5 @@
 # strtoull.m4 serial 7
-dnl Copyright (C) 2002, 2004, 2006, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2004, 2006, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 6a6aeb5..1a5ee4b 100644 (file)
@@ -1,5 +1,5 @@
-# strtoumax.m4 serial 11
-dnl Copyright (C) 2002-2004, 2006, 2009-2013 Free Software Foundation, Inc.
+# strtoumax.m4 serial 12
+dnl Copyright (C) 2002-2004, 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,12 @@ AC_DEFUN([gl_FUNC_STRTOUMAX],
   dnl On OSF/1 5.1 with cc, this function is declared but not defined.
   AC_CHECK_FUNCS_ONCE([strtoumax])
   AC_CHECK_DECLS_ONCE([strtoumax])
-  if test "$ac_cv_have_decl_strtoumax" != yes; then
+  if test "$ac_cv_have_decl_strtoumax" = yes; then
+    if test "$ac_cv_func_strtoumax" != yes; then
+      # HP-UX 11.11 has "#define strtoimax(...) ..." but no function.
+      REPLACE_STRTOUMAX=1
+    fi
+  else
     HAVE_DECL_STRTOUMAX=0
   fi
 ])
index 82ede2a..d15d915 100644 (file)
@@ -1,7 +1,7 @@
 # serial 6
 # See if we need to provide symlink replacement.
 
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/sys_ioctl_h.m4 b/m4/sys_ioctl_h.m4
new file mode 100644 (file)
index 0000000..85cab83
--- /dev/null
@@ -0,0 +1,64 @@
+# sys_ioctl_h.m4 serial 10
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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 Bruno Haible.
+
+AC_DEFUN([gl_SYS_IOCTL_H],
+[
+  dnl Use AC_REQUIRE here, so that the default behavior below is expanded
+  dnl once only, before all statements that occur in other macros.
+  AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
+
+  AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
+  if test $ac_cv_header_sys_ioctl_h = yes; then
+    HAVE_SYS_IOCTL_H=1
+    dnl Test whether <sys/ioctl.h> declares ioctl(), or whether some other
+    dnl header file, such as <unistd.h> or <stropts.h>, is needed for that.
+    AC_CACHE_CHECK([whether <sys/ioctl.h> declares ioctl],
+      [gl_cv_decl_ioctl_in_sys_ioctl_h],
+      [dnl We cannot use AC_CHECK_DECL because it produces its own messages.
+       AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [AC_INCLUDES_DEFAULT([#include <sys/ioctl.h>])],
+            [(void) ioctl;])],
+         [gl_cv_decl_ioctl_in_sys_ioctl_h=yes],
+         [gl_cv_decl_ioctl_in_sys_ioctl_h=no])
+      ])
+  else
+    HAVE_SYS_IOCTL_H=0
+  fi
+  AC_SUBST([HAVE_SYS_IOCTL_H])
+  dnl <sys/ioctl.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_CHECK_NEXT_HEADERS([sys/ioctl.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/ioctl.h>
+/* Some platforms declare ioctl in the wrong header.  */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <unistd.h>
+#endif
+    ]], [ioctl])
+])
+
+AC_DEFUN([gl_SYS_IOCTL_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_IOCTL_H_DEFAULTS],
+[
+  GNULIB_IOCTL=0;         AC_SUBST([GNULIB_IOCTL])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  SYS_IOCTL_H_HAVE_WINSOCK2_H=0; AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H])
+  SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0;
+                        AC_SUBST([SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
+  REPLACE_IOCTL=0;      AC_SUBST([REPLACE_IOCTL])
+])
diff --git a/m4/sys_select_h.m4 b/m4/sys_select_h.m4
new file mode 100644 (file)
index 0000000..23526e5
--- /dev/null
@@ -0,0 +1,95 @@
+# sys_select_h.m4 serial 20
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_HEADER_SYS_SELECT],
+[
+  AC_REQUIRE([AC_C_RESTRICT])
+  AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS])
+  AC_CACHE_CHECK([whether <sys/select.h> is self-contained],
+    [gl_cv_header_sys_select_h_selfcontained],
+    [
+      dnl Test against two bugs:
+      dnl 1. On many platforms, <sys/select.h> assumes prior inclusion of
+      dnl    <sys/types.h>.
+      dnl 2. On OSF/1 4.0, <sys/select.h> provides only a forward declaration
+      dnl    of 'struct timeval', and no definition of this type.
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/select.h>]],
+                                         [[struct timeval b;]])],
+        [gl_cv_header_sys_select_h_selfcontained=yes],
+        [gl_cv_header_sys_select_h_selfcontained=no])
+      dnl Test against another bug:
+      dnl 3. On Solaris 10, <sys/select.h> provides an FD_ZERO implementation
+      dnl    that relies on memset(), but without including <string.h>.
+      if test $gl_cv_header_sys_select_h_selfcontained = yes; then
+        AC_COMPILE_IFELSE(
+          [AC_LANG_PROGRAM([[#include <sys/select.h>]],
+                           [[int memset; int bzero;]])
+          ],
+          [AC_LINK_IFELSE(
+             [AC_LANG_PROGRAM([[#include <sys/select.h>]], [[
+                  #undef memset
+                  #define memset nonexistent_memset
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void *memset (void *, int, unsigned long);
+                  #undef bzero
+                  #define bzero nonexistent_bzero
+                  extern
+                  #ifdef __cplusplus
+                  "C"
+                  #endif
+                  void bzero (void *, unsigned long);
+                  fd_set fds;
+                  FD_ZERO (&fds);
+                ]])
+             ],
+             [],
+             [gl_cv_header_sys_select_h_selfcontained=no])
+          ])
+      fi
+    ])
+  dnl <sys/select.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_CHECK_NEXT_HEADERS([sys/select.h])
+  if test $ac_cv_header_sys_select_h = yes; then
+    HAVE_SYS_SELECT_H=1
+  else
+    HAVE_SYS_SELECT_H=0
+  fi
+  AC_SUBST([HAVE_SYS_SELECT_H])
+  gl_PREREQ_SYS_H_WINSOCK2
+
+  dnl Check for declarations of anything we want to poison if the
+  dnl corresponding gnulib module is not in use.
+  gl_WARN_ON_USE_PREPARE([[
+/* Some systems require prerequisite headers.  */
+#include <sys/types.h>
+#if !(defined __GLIBC__ && !defined __UCLIBC__) && HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#include <sys/select.h>
+    ]], [pselect select])
+])
+
+AC_DEFUN([gl_SYS_SELECT_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_SELECT_H_DEFAULTS],
+[
+  GNULIB_PSELECT=0; AC_SUBST([GNULIB_PSELECT])
+  GNULIB_SELECT=0; AC_SUBST([GNULIB_SELECT])
+  dnl Assume proper GNU behavior unless another module says otherwise.
+  HAVE_PSELECT=1; AC_SUBST([HAVE_PSELECT])
+  REPLACE_PSELECT=0; AC_SUBST([REPLACE_PSELECT])
+  REPLACE_SELECT=0; AC_SUBST([REPLACE_SELECT])
+])
index 9486377..ae500c7 100644 (file)
@@ -1,5 +1,5 @@
 # sys_socket_h.m4 serial 23
-dnl Copyright (C) 2005-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 6dd3d99..3d43b6f 100644 (file)
@@ -1,5 +1,5 @@
 # sys_stat_h.m4 serial 28   -*- Autoconf -*-
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 0ac71ac..3061a9c 100644 (file)
@@ -1,7 +1,7 @@
 # Configure a replacement for <sys/time.h>.
 # serial 8
 
-# Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2007, 2009-2016 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.
@@ -105,6 +105,7 @@ AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS],
   HAVE_GETTIMEOFDAY=1;       AC_SUBST([HAVE_GETTIMEOFDAY])
   HAVE_STRUCT_TIMEVAL=1;     AC_SUBST([HAVE_STRUCT_TIMEVAL])
   HAVE_SYS_TIME_H=1;         AC_SUBST([HAVE_SYS_TIME_H])
+  HAVE_TIMEZONE_T=0;         AC_SUBST([HAVE_TIMEZONE_T])
   REPLACE_GETTIMEOFDAY=0;    AC_SUBST([REPLACE_GETTIMEOFDAY])
   REPLACE_STRUCT_TIMEVAL=0;  AC_SUBST([REPLACE_STRUCT_TIMEVAL])
 ])
index d15c1b3..b0aabb4 100644 (file)
@@ -1,5 +1,5 @@
 # sys_types_h.m4 serial 5
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/sys_uio_h.m4 b/m4/sys_uio_h.m4
new file mode 100644 (file)
index 0000000..d4d967f
--- /dev/null
@@ -0,0 +1,31 @@
+# sys_uio_h.m4 serial 1
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_HEADER_SYS_UIO],
+[
+  AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS])
+  dnl <sys/uio.h> is always overridden, because of GNULIB_POSIXCHECK.
+  gl_CHECK_NEXT_HEADERS([sys/uio.h])
+  if test $ac_cv_header_sys_uio_h = yes; then
+    HAVE_SYS_UIO_H=1
+  else
+    HAVE_SYS_UIO_H=0
+  fi
+  AC_SUBST([HAVE_SYS_UIO_H])
+])
+
+AC_DEFUN([gl_SYS_UIO_MODULE_INDICATOR],
+[
+  dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+  AC_REQUIRE([gl_SYS_UIO_H_DEFAULTS])
+  gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+  dnl Define it also as a C macro, for the benefit of the unit tests.
+  gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_UIO_H_DEFAULTS],
+[
+])
index a6c59d6..69ca429 100644 (file)
@@ -1,5 +1,5 @@
 # sys_wait_h.m4 serial 6
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 a6e42dc..acf4c8d 100644 (file)
@@ -1,6 +1,6 @@
 #serial 5
 
-# Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2007, 2009-2016 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 3b83900..eb2a631 100644 (file)
@@ -1,8 +1,8 @@
 # Configure a more-standard replacement for <time.h>.
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
 
-# serial 7
+# serial 9
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -26,7 +26,7 @@ AC_DEFUN([gl_HEADER_TIME_H_BODY],
 ])
 
 dnl Check whether 'struct timespec' is declared
-dnl in time.h, sys/time.h, or pthread.h.
+dnl in time.h, sys/time.h, pthread.h, or unistd.h.
 
 AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
 [
@@ -44,6 +44,7 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
   TIME_H_DEFINES_STRUCT_TIMESPEC=0
   SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
   PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+  UNISTD_H_DEFINES_STRUCT_TIMESPEC=0
   if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
     TIME_H_DEFINES_STRUCT_TIMESPEC=1
   else
@@ -70,12 +71,26 @@ AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
            [gl_cv_sys_struct_timespec_in_pthread_h=no])])
       if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
         PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+      else
+        AC_CACHE_CHECK([for struct timespec in <unistd.h>],
+          [gl_cv_sys_struct_timespec_in_unistd_h],
+          [AC_COMPILE_IFELSE(
+             [AC_LANG_PROGRAM(
+                [[#include <unistd.h>
+                ]],
+                [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+             [gl_cv_sys_struct_timespec_in_unistd_h=yes],
+             [gl_cv_sys_struct_timespec_in_unistd_h=no])])
+        if test $gl_cv_sys_struct_timespec_in_unistd_h = yes; then
+          UNISTD_H_DEFINES_STRUCT_TIMESPEC=1
+        fi
       fi
     fi
   fi
   AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
   AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
   AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+  AC_SUBST([UNISTD_H_DEFINES_STRUCT_TIMESPEC])
 ])
 
 AC_DEFUN([gl_TIME_MODULE_INDICATOR],
@@ -94,6 +109,7 @@ AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS],
   GNULIB_STRPTIME=0;                     AC_SUBST([GNULIB_STRPTIME])
   GNULIB_TIMEGM=0;                       AC_SUBST([GNULIB_TIMEGM])
   GNULIB_TIME_R=0;                       AC_SUBST([GNULIB_TIME_R])
+  GNULIB_TIME_RZ=0;                      AC_SUBST([GNULIB_TIME_RZ])
   dnl Assume proper GNU behavior unless another module says otherwise.
   HAVE_DECL_LOCALTIME_R=1;               AC_SUBST([HAVE_DECL_LOCALTIME_R])
   HAVE_NANOSLEEP=1;                      AC_SUBST([HAVE_NANOSLEEP])
@@ -106,4 +122,13 @@ AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS],
   REPLACE_MKTIME=GNULIB_PORTCHECK;       AC_SUBST([REPLACE_MKTIME])
   REPLACE_NANOSLEEP=GNULIB_PORTCHECK;    AC_SUBST([REPLACE_NANOSLEEP])
   REPLACE_TIMEGM=GNULIB_PORTCHECK;       AC_SUBST([REPLACE_TIMEGM])
+
+  dnl Hack so that the time module doesn't depend on the sys_time module.
+  dnl First, default GNULIB_GETTIMEOFDAY to 0 if sys_time is absent.
+  : ${GNULIB_GETTIMEOFDAY=0};            AC_SUBST([GNULIB_GETTIMEOFDAY])
+  dnl Second, it's OK to not use GNULIB_PORTCHECK for REPLACE_GMTIME
+  dnl and REPLACE_LOCALTIME, as portability to Solaris 2.6 and earlier
+  dnl is no longer a big deal.
+  REPLACE_GMTIME=0;                      AC_SUBST([REPLACE_GMTIME])
+  REPLACE_LOCALTIME=0;                   AC_SUBST([REPLACE_LOCALTIME])
 ])
index c388a83..21b4a2c 100644 (file)
@@ -1,6 +1,6 @@
 dnl Reentrant time functions: localtime_r, gmtime_r.
 
-dnl Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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/time_rz.m4 b/m4/time_rz.m4
new file mode 100644 (file)
index 0000000..9b1db1b
--- /dev/null
@@ -0,0 +1,21 @@
+dnl Time zone functions: tzalloc, localtime_rz, etc.
+
+dnl Copyright (C) 2015-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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.
+
+AC_DEFUN([gl_TIME_RZ],
+[
+  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+  AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS])
+  AC_REQUIRE([AC_STRUCT_TIMEZONE])
+  AC_CHECK_FUNCS_ONCE([tzset])
+
+  AC_CHECK_TYPES([timezone_t], [], [], [[#include <time.h>]])
+  if test "$ac_cv_type_timezone_t" = yes; then
+    HAVE_TIMEZONE_T=1
+  fi
+])
diff --git a/m4/timegm.m4 b/m4/timegm.m4
new file mode 100644 (file)
index 0000000..752aa43
--- /dev/null
@@ -0,0 +1,26 @@
+# timegm.m4 serial 11
+dnl Copyright (C) 2003, 2007, 2009-2016 Free Software Foundation, Inc.
+dnl This file is free software; the Free 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_TIMEGM],
+[
+  AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+  AC_REQUIRE([gl_FUNC_MKTIME])
+  REPLACE_TIMEGM=0
+  AC_CHECK_FUNCS_ONCE([timegm])
+  if test $ac_cv_func_timegm = yes; then
+    if test $gl_cv_func_working_mktime = no; then
+      # Assume that timegm is buggy if mktime is.
+      REPLACE_TIMEGM=1
+    fi
+  else
+    HAVE_TIMEGM=0
+  fi
+])
+
+# Prerequisites of lib/timegm.c.
+AC_DEFUN([gl_PREREQ_TIMEGM], [
+  :
+])
index 399404b..2482518 100644 (file)
@@ -1,6 +1,6 @@
 #serial 15
 
-# Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2001, 2003-2007, 2009-2016 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 55e7ea3..ce0671f 100644 (file)
@@ -1,5 +1,5 @@
 # tm_gmtoff.m4 serial 3
-dnl Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 32dcfa5..544dadb 100644 (file)
@@ -1,5 +1,5 @@
-# unistd_h.m4 serial 66
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# unistd_h.m4 serial 68
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -160,6 +160,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   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])
@@ -172,9 +173,11 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   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_TTYNAME_R=0;    AC_SUBST([REPLACE_TTYNAME_R])
   REPLACE_UNLINK=0;       AC_SUBST([REPLACE_UNLINK])
   REPLACE_UNLINKAT=0;     AC_SUBST([REPLACE_UNLINKAT])
index f146206..c29ec20 100644 (file)
@@ -1,6 +1,6 @@
 # unlocked-io.m4 serial 15
 
-# Copyright (C) 1998-2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 1998-2006, 2009-2016 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/usleep.m4 b/m4/usleep.m4
deleted file mode 100644 (file)
index e430672..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-# usleep.m4 serial 3
-dnl Copyright (C) 2009-2013 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl This macro intentionally does not check for select or nanosleep;
-dnl both of those modules can require external libraries.
-AC_DEFUN([gl_FUNC_USLEEP],
-[
-  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
-  dnl usleep was required in POSIX 2001, but dropped as obsolete in
-  dnl POSIX 2008; therefore, it is not always exposed in headers.
-  AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
-  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
-  AC_CHECK_FUNCS_ONCE([usleep])
-  AC_CHECK_TYPE([useconds_t], [],
-    [AC_DEFINE([useconds_t], [unsigned int], [Define to an unsigned 32-bit
-      type if <sys/types.h> lacks this type.])])
-  if test $ac_cv_func_usleep = no; then
-    HAVE_USLEEP=0
-  else
-    dnl POSIX allows implementations to reject arguments larger than
-    dnl 999999, but GNU guarantees it will work.
-    AC_CACHE_CHECK([whether usleep allows large arguments],
-      [gl_cv_func_usleep_works],
-      [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
-#include <unistd.h>
-]], [[return !!usleep (1000000);]])],
-        [gl_cv_func_usleep_works=yes], [gl_cv_func_usleep_works=no],
-        [case "$host_os" in
-                   # Guess yes on glibc systems.
-           *-gnu*) gl_cv_func_usleep_works="guessing yes" ;;
-                   # If we don't know, assume the worst.
-           *)      gl_cv_func_usleep_works="guessing no" ;;
-         esac
-        ])])
-    case "$gl_cv_func_usleep_works" in
-      *yes) ;;
-      *)
-        REPLACE_USLEEP=1
-        ;;
-    esac
-  fi
-])
index 3d7b567..93fd66e 100644 (file)
@@ -1,25 +1,68 @@
 # Check for variable-length arrays.
 
-# serial 4
+# serial 5
 
 # From Paul Eggert
 
-# Copyright (C) 2001, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2009-2016 Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# This is a copy of AC_C_VARARRAYS from a recent development version
+# of Autoconf.  It replaces Autoconf's version, or for pre-2.61 autoconf
+# it defines the macro that Autoconf lacks.
 AC_DEFUN([AC_C_VARARRAYS],
 [
   AC_CACHE_CHECK([for variable-length arrays],
     ac_cv_c_vararrays,
-    [AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-         [],
-         [[static int x; char a[++x]; a[sizeof a - 1] = 0; return a[0];]])],
-       ac_cv_c_vararrays=yes,
-       ac_cv_c_vararrays=no)])
-  if test $ac_cv_c_vararrays = yes; then
-    AC_DEFINE([HAVE_C_VARARRAYS], [1],
+    [AC_EGREP_CPP([defined],
+       [#ifdef __STDC_NO_VLA__
+       defined
+       #endif
+       ],
+       [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'],
+       [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[/* 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:
+                 http://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];
+                }
+
+                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
+              ]])],
+         [ac_cv_c_vararrays=yes],
+         [ac_cv_c_vararrays=no])])])
+  if test "$ac_cv_c_vararrays" = yes; then
+    dnl This is for compatibility with Autoconf 2.61-2.69.
+    AC_DEFINE([HAVE_C_VARARRAYS], 1,
       [Define to 1 if C supports variable-length arrays.])
+  elif test "$ac_cv_c_vararrays" = no; then
+    AC_DEFINE([__STDC_NO_VLA__], 1,
+      [Define to 1 if C does not support variable-length arrays, and
+       if the compiler does not already define this.])
   fi
 ])
index d730e43..2d4b463 100644 (file)
@@ -1,5 +1,5 @@
 # vasnprintf.m4 serial 36
-dnl Copyright (C) 2002-2004, 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2004, 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 c214ff1..d7866b1 100644 (file)
@@ -1,5 +1,5 @@
 # vasprintf.m4 serial 6
-dnl Copyright (C) 2002-2003, 2006-2007, 2009-2013 Free Software Foundation,
+dnl Copyright (C) 2002-2003, 2006-2007, 2009-2016 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 5dbef8e..a719182 100644 (file)
@@ -1,5 +1,5 @@
 # version-etc.m4 serial 1
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 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 e43beeb..08440ec 100644 (file)
@@ -1,5 +1,5 @@
 # warn-on-use.m4 serial 5
-dnl Copyright (C) 2010-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2010-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4b2ac38..924e21d 100644 (file)
@@ -1,5 +1,5 @@
-# warnings.m4 serial 7
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+# warnings.m4 serial 11
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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,19 +25,36 @@ m4_ifdef([AS_VAR_APPEND],
 AC_DEFUN([gl_COMPILER_OPTION_IF],
 [AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl
 AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl
+AS_LITERAL_IF([$1],
+  [m4_pushdef([gl_Positive], m4_bpatsubst([$1], [^-Wno-], [-W]))],
+  [gl_positive="$1"
+case $gl_positive in
+  -Wno-*) gl_positive=-W`expr "X$gl_positive" : 'X-Wno-\(.*\)'` ;;
+esac
+m4_pushdef([gl_Positive], [$gl_positive])])dnl
 AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [
   gl_save_compiler_FLAGS="$gl_Flags"
-  gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $1"])
-  AC_COMPILE_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])],
-                    [AS_VAR_SET(gl_Warn, [yes])],
-                    [AS_VAR_SET(gl_Warn, [no])])
+  gl_AS_VAR_APPEND(m4_defn([gl_Flags]),
+    [" $gl_unknown_warnings_are_errors ]m4_defn([gl_Positive])["])
+  AC_LINK_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])],
+                 [AS_VAR_SET(gl_Warn, [yes])],
+                 [AS_VAR_SET(gl_Warn, [no])])
   gl_Flags="$gl_save_compiler_FLAGS"
 ])
 AS_VAR_IF(gl_Warn, [yes], [$2], [$3])
+m4_popdef([gl_Positive])dnl
 AS_VAR_POPDEF([gl_Flags])dnl
 AS_VAR_POPDEF([gl_Warn])dnl
 ])
 
+# gl_UNKNOWN_WARNINGS_ARE_ERRORS
+# ------------------------------
+# Clang doesn't complain about unknown warning options unless one also
+# specifies -Wunknown-warning-option -Werror.  Detect this.
+AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS],
+[gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option],
+   [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'],
+   [gl_unknown_warnings_are_errors=])])
 
 # gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS],
 #             [PROGRAM = AC_LANG_PROGRAM()])
@@ -47,7 +64,8 @@ AS_VAR_POPDEF([gl_Warn])dnl
 #
 # If VARIABLE is a variable name, AC_SUBST it.
 AC_DEFUN([gl_WARN_ADD],
-[gl_COMPILER_OPTION_IF([$1],
+[AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS])
+gl_COMPILER_OPTION_IF([$1],
   [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])],
   [],
   [$3])
index bedb15a..b40b732 100644 (file)
@@ -1,6 +1,6 @@
 dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
 
-dnl Copyright (C) 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 e1e1e69..2db8c3f 100644 (file)
@@ -1,5 +1,5 @@
 # wchar_t.m4 serial 4 (gettext-0.18.2)
-dnl Copyright (C) 2002-2003, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2003, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 f56b5ba..267b3c9 100644 (file)
@@ -1,5 +1,5 @@
 # wcrtomb.m4 serial 11
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 edc0d79..bdb5299 100644 (file)
@@ -1,5 +1,5 @@
 # wctob.m4 serial 10
-dnl Copyright (C) 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 7deba92..7c8b3ef 100644 (file)
@@ -1,5 +1,5 @@
 # wctomb.m4 serial 2
-dnl Copyright (C) 2011-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2011-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 82ada0e..accc001 100644 (file)
@@ -2,7 +2,7 @@
 
 dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
 
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 740f81e..7a743c0 100644 (file)
@@ -1,5 +1,5 @@
 # wcwidth.m4 serial 23
-dnl Copyright (C) 2006-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -39,6 +39,7 @@ AC_DEFUN([gl_FUNC_WCWIDTH],
     dnl On Mac OS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
     dnl On OpenBSD 5.0, wcwidth(0x05B0) (HEBREW POINT SHEVA) returns 1.
     dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
+    dnl On OpenBSD 5.8, wcwidth(0xFF1A) (FULLWIDTH COLON) returns 0.
     dnl This leads to bugs in 'ls' (coreutils).
     AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
       [gl_cv_func_wcwidth_works],
@@ -74,6 +75,8 @@ int main ()
         result |= 2;
       if (wcwidth (0x200B) > 0)
         result |= 4;
+      if (wcwidth (0xFF1A) == 0)
+        result |= 8;
     }
   return result;
 }]])],
index d7cd3db..8ff2a5b 100644 (file)
@@ -1,5 +1,5 @@
 # wint_t.m4 serial 5 (gettext-0.18.2)
-dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2007-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 64ca701..f4f540d 100644 (file)
@@ -1,5 +1,5 @@
 # xalloc.m4 serial 18
-dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 8ea9f2c..16764e8 100644 (file)
@@ -1,5 +1,5 @@
 # xsize.m4 serial 5
-dnl Copyright (C) 2003-2004, 2008-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003-2004, 2008-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 4a9330b..3511c80 100644 (file)
@@ -1,5 +1,5 @@
 # xstrndup.m4 serial 2
-dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2003, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 d52ee11..f81cd21 100644 (file)
@@ -1,5 +1,5 @@
 #serial 11
-dnl Copyright (C) 2002-2007, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2002-2007, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 772dcc8..dd01142 100644 (file)
@@ -1,5 +1,5 @@
 # xvasprintf.m4 serial 2
-dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc.
+dnl Copyright (C) 2006, 2009-2016 Free Software Foundation, Inc.
 dnl This file is free software; the Free 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 2b454a1..868e10f 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-2013 Free Software Foundation, Inc.
+## Copyright (C) 2001-2016 Free Software Foundation, Inc.
 ##
 ## This program is free software: you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
 ME := maint.mk
 
-# Diagnostic for continued use of deprecated variable.
-# Remove in 2013
-ifneq ($(build_aux),)
- $(error "$(ME): \
-set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)")
-endif
-
 # Helper variables.
 _empty =
 _sp = $(_empty) $(_empty)
@@ -76,7 +69,7 @@ _dot_escaped_srcdir = $(subst .,\.,$(srcdir))
 ifeq ($(srcdir),.)
   _prepend_srcdir_prefix =
 else
-  _prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|'
+  _prepend_srcdir_prefix = | $(SED) 's|^|$(srcdir)/|'
 endif
 
 # In order to be able to consistently filter "."-relative names,
@@ -85,7 +78,7 @@ endif
 _sc_excl = \
   $(or $(exclude_file_name_regexp--$@),^$$)
 VC_LIST_EXCEPT = \
-  $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \
+  $(VC_LIST) | $(SED) 's|^$(_dot_escaped_srcdir)/||' \
        | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \
          else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \
        | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \
@@ -155,11 +148,12 @@ export LC_ALL = C
 ## Sanity checks.  ##
 ## --------------- ##
 
+ifneq ($(_gl-Makefile),)
 _cfg_mk := $(wildcard $(srcdir)/cfg.mk)
 
 # Collect the names of rules starting with 'sc_'.
-syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
-                       $(srcdir)/$(ME) $(_cfg_mk)))
+syntax-check-rules := $(sort $(shell $(SED) -n \
+   's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(srcdir)/$(ME) $(_cfg_mk)))
 .PHONY: $(syntax-check-rules)
 
 ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0)
@@ -196,6 +190,7 @@ local-check :=                                                              \
     $(filter-out $(local-checks-to-skip), $(local-checks-available)))
 
 syntax-check: $(local-check)
+endif
 
 # _sc_search_regexp
 #
@@ -442,17 +437,26 @@ sc_require_config_h:
        halt='the above files do not include <config.h>'                \
          $(_sc_search_regexp)
 
+# Print each file name for which the first #include does not match
+# $(config_h_header).  Like grep -m 1, this only looks at the first match.
+perl_config_h_first_ =                                                 \
+  -e 'BEGIN {$$ret = 0}'                                               \
+  -e 'if (/^\# *include\b/) {'                                         \
+  -e '  if (not m{^\# *include $(config_h_header)}) {'                 \
+  -e '    print "$$ARGV\n";'                                           \
+  -e '    $$ret = 1;'                                                  \
+  -e '  }'                                                             \
+  -e '  \# Move on to next file after first include'                   \
+  -e '  close ARGV;'                                                   \
+  -e '}'                                                               \
+  -e 'END {exit $$ret}'
+
 # You must include <config.h> before including any other header file.
 # This can possibly be via a package-specific header, if given by cfg.mk.
 sc_require_config_h_first:
-       @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then       \
-         fail=0;                                                       \
-         for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do             \
-           grep '^# *include\>' $$i | sed 1q                           \
-               | grep -E '^# *include $(config_h_header)' > /dev/null  \
-             || { echo $$i; fail=1; };                                 \
-         done;                                                         \
-         test $$fail = 1 &&                                            \
+       @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then          \
+         files=$$($(VC_LIST_EXCEPT) | grep '\.c$$') &&                 \
+         perl -n $(perl_config_h_first_) $$files ||                    \
            { echo '$(ME): the above files include some other header'   \
                'before <config.h>' 1>&2; exit 1; } || :;               \
        else :;                                                         \
@@ -468,8 +472,8 @@ sc_prohibit_HAVE_MBRTOWC:
 # re: a regular expression that matches IFF something provided by $h is used.
 define _sc_header_without_use
   dummy=; : so we do not need a semicolon before each use;             \
-  h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`;                   \
-  if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then             \
+  h_esc=`echo '[<"]'"$$h"'[">]'|$(SED) 's/\./\\\\./g'`;                        \
+  if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then                        \
     files=$$(grep -l '^# *include '"$$h_esc"                           \
             $$($(VC_LIST_EXCEPT) | grep '\.c$$')) &&                   \
     grep -LE "$$re" $$files | grep . &&                                        \
@@ -591,7 +595,7 @@ sc_prohibit_root_dev_ino_without_use:
 
 sc_prohibit_openat_without_use:
        @h='openat.h' \
-       re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat)\>' \
+       re='\<(openat_(permissive|needs_fchdir|(save|restore)_fail)|l?(stat|ch(own|mod))at|(euid)?accessat|(FCHMOD|FCHOWN|STAT)AT_INLINE)\>' \
          $(_sc_header_without_use)
 
 # Prohibit the inclusion of c-ctype.h without an actual use.
@@ -656,8 +660,7 @@ sc_prohibit_strings_without_use:
 # Get the list of symbol names with this:
 # perl -lne '/^# *define ([A-Z]\w+)\(/ and print $1' lib/intprops.h|fmt
 _intprops_names =                                                      \
-  TYPE_IS_INTEGER TYPE_TWOS_COMPLEMENT TYPE_ONES_COMPLEMENT            \
-  TYPE_SIGNED_MAGNITUDE TYPE_SIGNED TYPE_MINIMUM TYPE_MAXIMUM          \
+  TYPE_IS_INTEGER TYPE_SIGNED TYPE_MINIMUM TYPE_MAXIMUM                        \
   INT_BITS_STRLEN_BOUND INT_STRLEN_BOUND INT_BUFSIZE_BOUND             \
   INT_ADD_RANGE_OVERFLOW INT_SUBTRACT_RANGE_OVERFLOW                   \
   INT_NEGATE_RANGE_OVERFLOW INT_MULTIPLY_RANGE_OVERFLOW                        \
@@ -716,7 +719,7 @@ sc_changelog:
 # Ensure that each .c file containing a "main" function also
 # calls set_program_name.
 sc_program_name:
-       @require='set_program_name *\(m?argv\[0\]\);'                   \
+       @require='set_program_name *\(.*\);'                            \
        in_vc_files='\.c$$'                                             \
        containing='\<main *('                                          \
        halt='the above files do not call set_program_name'             \
@@ -789,7 +792,7 @@ sc_useless_cpp_parens:
 # #if HAVE_HEADER_H that you remove, be sure that your project explicitly
 # requires the gnulib module that guarantees the usability of that header.
 gl_assured_headers_ = \
-  cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g'
+  cd $(gnulib_dir)/lib && echo *.in.h|$(SED) 's/\.in\.h//g'
 
 # Convert the list of names to upper case, and replace each space with "|".
 az_ = abcdefghijklmnopqrstuvwxyz
@@ -809,7 +812,7 @@ sc_prohibit_always_true_header_tests:
          $(_sc_search_regexp)
 
 sc_prohibit_defined_have_decl_tests:
-       @prohibit='#[    ]*if(n?def|.*\<defined)\>[      (]+HAVE_DECL_' \
+       @prohibit='(#[   ]*ifn?def|\<defined)\>[         (]+HAVE_DECL_' \
        halt='HAVE_DECL macros are always defined'                      \
          $(_sc_search_regexp)
 
@@ -840,7 +843,7 @@ define def_sym_regex
              && perl -lne '$(gl_extract_significant_defines_)' $$f;    \
          done;                                                         \
        ) | sort -u                                                     \
-         | sed 's/^/^ *# *(define|undef)  */;s/$$/\\>/'
+         | $(SED) 's/^/^ *# *(define|undef)  */;s/$$/\\>/'
 endef
 
 # Don't define macros that we already get from gnulib header files.
@@ -959,8 +962,13 @@ perl_filename_lineno_text_ =                                               \
     -e '    print "$$ARGV:$$n:$$v\n";'                                 \
     -e '  }'
 
+prohibit_doubled_words_ = \
+    the then in an on if is it but for or at and do to
+# 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_)))
 prohibit_doubled_word_RE_ ?= \
-  /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims
+    /\b(?:$(subst $(_sp),|,$(prohibit_doubled_word_expanded_)))\b/gims
 prohibit_doubled_word_ =                                               \
     -e 'while ($(prohibit_doubled_word_RE_))'                          \
     $(perl_filename_lineno_text_)
@@ -1001,6 +1009,14 @@ sc_prohibit_undesirable_word_seq:
          | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \
          && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || :
 
+# Except for shell files and for loops, double semicolon is probably a mistake
+sc_prohibit_double_semicolon:
+       @prohibit='; *;[        {} \]*(/[/*]|$$)'                       \
+       in_vc_files='\.[chly]$$'                                        \
+       exclude='\bfor *\(.*\)'                                         \
+       halt="Double semicolon detected"                                \
+         $(_sc_search_regexp)
+
 _ptm1 = use "test C1 && test C2", not "test C1 -''a C2"
 _ptm2 = use "test C1 || test C2", not "test C1 -''o C2"
 # Using test's -a and -o operators is not portable.
@@ -1054,12 +1070,12 @@ sc_const_long_option:
          $(_sc_search_regexp)
 
 NEWS_hash =                                                            \
-  $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p'             \
+  $$($(SED) -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p'          \
        $(srcdir)/NEWS                                                  \
      | perl -0777 -pe                                                  \
        's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms'       \
      | md5sum -                                                                \
-     | sed 's/ .*//')
+     | $(SED) 's/ .*//')
 
 # Ensure that we don't accidentally insert an entry into an old NEWS block.
 sc_immutable_NEWS:
@@ -1097,7 +1113,7 @@ sc_makefile_at_at_check:
          && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-check: NEWS
-       $(AM_V_GEN)if sed -n $(news-check-lines-spec)p $<               \
+       $(AM_V_GEN)if $(SED) -n $(news-check-lines-spec)p $<            \
            | grep -E $(news-check-regexp) >/dev/null; then             \
          :;                                                            \
        else                                                            \
@@ -1121,6 +1137,21 @@ fix_po_file_diag = \
 'you have changed the set of files with translatable diagnostics;\n\
 apply the above patch\n'
 
+# Generate a list of files in which to search for translatable strings.
+perl_translatable_files_list_ =                                                \
+  -e 'foreach $$file (@ARGV) {'                                                \
+  -e ' \# Consider only file extensions with one or two letters'       \
+  -e ' $$file =~ /\...?$$/ or next;'                                   \
+  -e ' \# Ignore m4 and mk files'                                      \
+  -e ' $$file =~ /\.m[4k]$$/ and next;'                                \
+  -e ' \# Ignore a .c or .h file with a corresponding .l or .y file'   \
+  -e ' $$file =~ /(.+)\.[ch]$$/ && (-e "$${1}.l" || -e "$${1}.y")'     \
+  -e '   and next;'                                                    \
+  -e ' \# Skip unreadable files'                                       \
+  -e ' -r $$file or next;'                                             \
+  -e ' print "$$file ";'                                               \
+  -e '}'
+
 # Verify that all source files using _() (more specifically, files that
 # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in.
 po_file ?= $(srcdir)/po/POTFILES.in
@@ -1130,23 +1161,10 @@ sc_po_check:
        @if test -f $(po_file); then                                    \
          grep -E -v '^(#|$$)' $(po_file)                               \
            | grep -v '^src/false\.c$$' | sort > $@-1;                  \
-         files=;                                                       \
-         for file in $$($(VC_LIST_EXCEPT)) $(generated_files); do      \
-           test -r $$file || continue;                                 \
-           case $$file in                                              \
-             *.m4|*.mk) continue ;;                                    \
-             *.?|*.??) ;;                                              \
-             *) continue;;                                             \
-           esac;                                                       \
-           case $$file in                                              \
-           *.[ch])                                                     \
-             base=`expr " $$file" : ' \(.*\)\..'`;                     \
-             { test -f $$base.l || test -f $$base.y; } && continue;;   \
-           esac;                                                       \
-           files="$$files $$file";                                     \
-         done;                                                         \
+         files=$$(perl $(perl_translatable_files_list_)                \
+           $$($(VC_LIST_EXCEPT)) $(generated_files));                  \
          grep -E -l '$(_gl_translatable_string_re)' $$files            \
-           | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2;      \
+           | $(SED) 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2;   \
          diff -u -L $(po_file) -L $(po_file) $@-1 $@-2                 \
            || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; };   \
          rm -f $@-1 $@-2;                                              \
@@ -1192,7 +1210,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)' Free'       \
+       @require='Copyright @copyright\{\} .*'$$(date +%Y)              \
        in_vc_files=$(texi)                                             \
        halt='out of date copyright in $(texi); update it'              \
          $(_sc_search_regexp)
@@ -1283,15 +1301,17 @@ vc-diff-check:
 rel-files = $(DIST_ARCHIVES)
 
 gnulib_dir ?= $(srcdir)/gnulib
-gnulib-version = $$(cd $(gnulib_dir) && git describe)
+gnulib-version = $$(cd $(gnulib_dir)                           \
+                    && { git describe || git rev-parse --short=10 HEAD; } )
 bootstrap-tools ?= autoconf,automake,gnulib
 
+gpgv = $$(gpgv2 --version >/dev/null && echo gpgv2 || echo gpgv)
 # If it's not already specified, derive the GPG key ID from
 # the signed tag we've just applied to mark this release.
 gpg_key_ID ?=                                                          \
   $$(cd $(srcdir)                                                      \
      && git cat-file tag v$(VERSION)                                   \
-        | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null       \
+        | $(gpgv) --status-fd 1 --keyring /dev/null - - 2>/dev/null    \
         | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}')
 
 translation_project_ ?= coordinator@translationproject.org
@@ -1393,8 +1413,8 @@ public-submodule-commit:
                && git --version >/dev/null 2>&1; then                  \
          cd $(srcdir) &&                                               \
          git submodule --quiet foreach                                 \
-             test '"$$(git rev-parse "$$sha1")"'                       \
-             = '"$$(git merge-base origin "$$sha1")"'                  \
+             'test "$$(git rev-parse "$$sha1")"                        \
+                 = "$$(git merge-base origin "$$sha1")"'               \
            || { echo '$(ME): found non-public submodule commit' >&2;   \
                 exit 1; };                                             \
        else                                                            \
@@ -1424,6 +1444,7 @@ alpha beta stable: $(local-check) writable-files $(submodule-checks)
        $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
 
 release:
+       $(AM_V_GEN)$(MAKE) _version
        $(AM_V_GEN)$(MAKE) $(release-type)
 
 # Override this in cfg.mk if you follow different procedures.
@@ -1508,7 +1529,7 @@ refresh-gnulib-patches:
          test -n "$$t" && gl=$$t;                                      \
        fi;                                                             \
        for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do     \
-         b=$$(printf %s "$$diff"|sed 's/\.diff$$//');                  \
+         b=$$(printf %s "$$diff"|$(SED) 's/\.diff$$//');               \
          VERSION_CONTROL=none                                          \
            patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1;          \
          ( cd $(gnulib_dir) || exit 1;                                 \
@@ -1527,7 +1548,8 @@ refresh-po:
        wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \
        echo 'en@boldquot' > $(PODIR)/LINGUAS && \
        echo 'en@quot' >> $(PODIR)/LINGUAS && \
-       ls $(PODIR)/*.po | sed 's/\.po//;s,$(PODIR)/,,' | sort >> $(PODIR)/LINGUAS
+       ls $(PODIR)/*.po | $(SED) 's/\.po//;s,$(PODIR)/,,' | \
+         sort >> $(PODIR)/LINGUAS
 
  # Running indent once is not idempotent, but running it twice is.
 INDENT_SOURCES ?= $(C_SOURCES)
@@ -1593,7 +1615,7 @@ ifeq (a,b)
 # do not need to be marked.  Symbols matching '__.*' are
 # reserved by the compiler, so are automatically excluded below.
 _gl_TS_unmarked_extern_functions ?= main usage
-_gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/
+_gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\w+) *\(/
 
 # If your project uses a macro like "XTERN", then put
 # the following in cfg.mk to override this default:
@@ -1626,6 +1648,7 @@ _gl_TS_other_headers ?= *.h
 
 .PHONY: _gl_tight_scope
 _gl_tight_scope: $(bin_PROGRAMS)
+       sed_wrap='s/^/^_?/;s/$$/$$/';                                   \
        t=exceptions-$$$$;                                              \
        trap 's=$$?; rm -f $$t; exit $$s' 0;                            \
        for sig in 1 2 3 13 15; do                                      \
@@ -1635,20 +1658,20 @@ _gl_tight_scope: $(bin_PROGRAMS)
               test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`;   \
        hdr=`for f in $(_gl_TS_headers); do                             \
               test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`;   \
-       ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions);  \
+       ( printf '%s\n' '__.*' $(_gl_TS_unmarked_extern_functions);     \
          grep -h -A1 '^extern .*[^;]$$' $$src                          \
-           | grep -vE '^(extern |--)' | sed 's/ .*//';                 \
+           | grep -vE '^(extern |--|#)' | $(SED) 's/ .*//; /^$$/d';    \
          perl -lne                                                     \
-            '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr;      \
-       ) | sort -u > $$t;                                              \
-       nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \
+            '$(_gl_TS_function_match) and print $$1' $$hdr;            \
+       ) | sort -u | $(SED) "$$sed_wrap" > $$t;                        \
+       nm -g $(_gl_TS_obj_files)|$(SED) -n 's/.* T //p'|grep -Ev -f $$t \
          && { echo the above functions should have static scope >&2;   \
               exit 1; } || : ;                                         \
-       ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars);       \
-         perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"'           \
+       ( printf '%s\n' '__.*' main $(_gl_TS_unmarked_extern_vars);     \
+         perl -lne '$(_gl_TS_var_match) and print $$1'                 \
                $$hdr $(_gl_TS_other_headers)                           \
-       ) | sort -u > $$t;                                              \
-       nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p'          \
+       ) | sort -u | $(SED) "$$sed_wrap" > $$t;                        \
+       nm -g $(_gl_TS_obj_files) | $(SED) -n 's/.* [BCDGRS] //p'       \
             | sort -u | grep -Ev -f $$t                                        \
          && { echo the above variables should have static scope >&2;   \
               exit 1; } || :
index 02cd761..918d863 100644 (file)
@@ -1,6 +1,6 @@
 # Automakefile for GNU diffutils man pages
 
-# Copyright (C) 2002, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -25,10 +25,15 @@ diff.1: $S/diff.c diff.x
 diff3.1: $S/diff3.c diff3.x
 sdiff.1: $S/sdiff.c sdiff.x
 
+# Directory in which just-built programs reside.  It is used
+# to ensure help2man invokes them via the use of PATH below.
+bin_dir = ../src
+
 # Depend on the former to get version number changes.
 $(dist_man1_MANS): $(SRC_VERSION_C) help2man
        $(AM_V_GEN)base=`expr $@ : '\(.*\).1'`                          \
+         && test -x $(bin_dir)/$$base                                  \
          && (echo '[NAME]' && sed 's@/\* *@@; s/-/\\-/; q' $S/$$base.c) \
-            | PATH=..$(PATH_SEPARATOR)$$PATH                           \
+            | PATH="$(bin_dir)$(PATH_SEPARATOR)$$PATH"                 \
               $(srcdir)/help2man -i - -i $(srcdir)/$$base.x            \
                 -S '$(PACKAGE) $(VERSION)' $$base > $@-t && mv $@-t $@
index 8b63b0b..a7dc647 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 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 Free Software Foundation, Inc.
+# Copyright (C) 2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This 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/>.
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -66,15 +104,14 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = man
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(dist_man1_MANS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -82,9 +119,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -93,14 +131,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -116,36 +155,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -158,6 +206,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/lib/config.h
 CONFIG_CLEAN_FILES =
@@ -213,6 +262,7 @@ am__installdirs = "$(DESTDIR)$(man1dir)"
 NROFF = nroff
 MANS = $(dist_man1_MANS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(dist_man1_MANS) $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -260,13 +310,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -320,6 +374,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -329,13 +386,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -391,6 +453,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -399,6 +462,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -408,6 +472,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -415,14 +481,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -454,6 +526,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -516,6 +589,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -535,6 +610,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -588,6 +665,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -602,6 +680,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -622,6 +701,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -632,6 +712,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -646,6 +727,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -672,17 +754,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -730,6 +819,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -738,6 +828,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -757,11 +848,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -778,6 +872,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -786,6 +884,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -794,14 +893,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -810,6 +914,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -818,9 +923,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -873,14 +982,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -889,6 +1003,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -917,21 +1032,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -954,9 +1073,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -980,21 +1101,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1013,6 +1139,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1050,11 +1177,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1067,6 +1196,10 @@ dist_man1_MANS = cmp.1 diff.1 diff3.1 sdiff.1
 EXTRA_DIST = $(dist_man1_MANS:%.1=%.x) help2man
 MAINTAINERCLEANFILES = $(dist_man1_MANS)
 S = $(top_srcdir)/src
+
+# Directory in which just-built programs reside.  It is used
+# to ensure help2man invokes them via the use of PATH below.
+bin_dir = ../src
 all: all-am
 
 .SUFFIXES:
@@ -1082,14 +1215,13 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu man/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -1298,6 +1430,8 @@ uninstall-man: uninstall-man1
        pdf-am ps ps-am tags-am uninstall uninstall-am uninstall-man \
        uninstall-man1
 
+.PRECIOUS: Makefile
+
 cmp.1: $S/cmp.c cmp.x
 diff.1: $S/diff.c diff.x
 diff3.1: $S/diff3.c diff3.x
@@ -1306,8 +1440,9 @@ sdiff.1: $S/sdiff.c sdiff.x
 # Depend on the former to get version number changes.
 $(dist_man1_MANS): $(SRC_VERSION_C) help2man
        $(AM_V_GEN)base=`expr $@ : '\(.*\).1'`                          \
+         && test -x $(bin_dir)/$$base                                  \
          && (echo '[NAME]' && sed 's@/\* *@@; s/-/\\-/; q' $S/$$base.c) \
-            | PATH=..$(PATH_SEPARATOR)$$PATH                           \
+            | PATH="$(bin_dir)$(PATH_SEPARATOR)$$PATH"                 \
               $(srcdir)/help2man -i - -i $(srcdir)/$$base.x            \
                 -S '$(PACKAGE) $(VERSION)' $$base > $@-t && mv $@-t $@
 
index c20f9d6..a4c9ce9 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" "March 2013" "diffutils 3.3" "User Commands"
+.TH CMP "1" "August 2016" "diffutils 3.4" "User Commands"
 .SH NAME
 cmp \- compare two files byte by byte
 .SH SYNOPSIS
@@ -42,7 +42,7 @@ SKIP values may be followed by the following multiplicative suffixes:
 kB 1000, K 1024, MB 1,000,000, M 1,048,576,
 GB 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.
 .PP
-If a FILE is `\-' or missing, read standard input.
+If a FILE is '\-' or missing, read standard input.
 Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
 .SH AUTHOR
 Written by Torbjorn Granlund and David MacKenzie.
@@ -53,7 +53,7 @@ GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <http://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2011 Free Software Foundation, Inc.
+Copyright \(co 2016 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
index 91d8930..686e1f8 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH DIFF "1" "March 2013" "diffutils 3.3" "User Commands"
+.TH DIFF "1" "August 2016" "diffutils 3.4" "User Commands"
 .SH NAME
 diff \- compare files line by line
 .SH SYNOPSIS
@@ -50,7 +50,7 @@ show which C function each change is in
 show the most recent line matching RE
 .TP
 \fB\-\-label\fR LABEL
-use LABEL instead of file name
+use LABEL instead of file name and timestamp
 (can be repeated)
 .TP
 \fB\-t\fR, \fB\-\-expand\-tabs\fR
@@ -66,11 +66,14 @@ tab stops every NUM (default 8) print columns
 suppress space or tab before empty output lines
 .TP
 \fB\-l\fR, \fB\-\-paginate\fR
-pass output through `pr' to paginate it
+pass output through 'pr' to paginate it
 .TP
 \fB\-r\fR, \fB\-\-recursive\fR
 recursively compare any subdirectories found
 .TP
+\fB\-\-no\-dereference\fR
+don't follow symbolic links
+.TP
 \fB\-N\fR, \fB\-\-new\-file\fR
 treat absent files as empty
 .TP
@@ -116,10 +119,10 @@ ignore changes in the amount of white space
 ignore all white space
 .TP
 \fB\-B\fR, \fB\-\-ignore\-blank\-lines\fR
-ignore changes whose lines are all blank
+ignore changes where lines are all blank
 .TP
 \fB\-I\fR, \fB\-\-ignore\-matching\-lines\fR=\fIRE\fR
-ignore changes whose lines all match RE
+ignore changes where all lines match RE
 .TP
 \fB\-a\fR, \fB\-\-text\fR
 treat all files as text
@@ -128,7 +131,7 @@ treat all files as text
 strip trailing carriage return on input
 .TP
 \fB\-D\fR, \fB\-\-ifdef\fR=\fINAME\fR
-output merged file with `#ifdef NAME' diffs
+output merged file with '#ifdef NAME' diffs
 .TP
 \fB\-\-GTYPE\-group\-format\fR=\fIGFMT\fR
 format GTYPE input groups with GFMT
@@ -143,8 +146,8 @@ These format options provide fine\-grained control over the output
 .IP
 of diff, generalizing \fB\-D\fR/\-\-ifdef.
 .TP
-LTYPE is `old', `new', or `unchanged'.
-GTYPE is LTYPE or `changed'.
+LTYPE is 'old', 'new', or 'unchanged'.
+GTYPE is LTYPE or 'changed'.
 .IP
 GFMT (only) may contain:
 .TP
@@ -214,15 +217,23 @@ keep NUM lines of the common prefix and suffix
 \fB\-\-speed\-large\-files\fR
 assume large files and many scattered small changes
 .TP
+\fB\-\-color\fR[=\fIWHEN\fR]
+colorize the output; WHEN can be 'never', 'always',
+or 'auto' (the default)
+.TP
+\fB\-\-palette\fR=\fIPALETTE\fR
+specify the colors to use when \fB\-\-color\fR is active
+PALETTE is a colon\-separated list terminfo capabilities
+.TP
 \fB\-\-help\fR
 display this help and exit
 .TP
 \fB\-v\fR, \fB\-\-version\fR
 output version information and exit
 .PP
-FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'.
+FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'.
 If \fB\-\-from\-file\fR or \fB\-\-to\-file\fR is given, there are no restrictions on FILE(s).
-If a FILE is `\-', read standard input.
+If a FILE is '\-', read standard input.
 Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
 .SH AUTHOR
 Written by Paul Eggert, Mike Haertel, David Hayes,
@@ -234,7 +245,7 @@ GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <http://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2011 Free Software Foundation, Inc.
+Copyright \(co 2016 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
index 83d3e41..6fe2689 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH DIFF3 "1" "March 2013" "diffutils 3.3" "User Commands"
+.TH DIFF3 "1" "August 2016" "diffutils 3.4" "User Commands"
 .SH NAME
 diff3 \- compare three files line by line
 .SH SYNOPSIS
@@ -30,7 +30,7 @@ like \fB\-e\fR, but incorporate only overlapping changes
 like \fB\-x\fR, but bracket conflicts
 .TP
 \fB\-i\fR
-append `w' and `q' commands to ed scripts
+append 'w' and 'q' commands to ed scripts
 .TP
 \fB\-m\fR, \fB\-\-merge\fR
 output actual merged file, according to
@@ -68,7 +68,7 @@ Finally, the \fB\-m\fR (\fB\-\-merge\fR) option causes diff3 to do the merge int
 and output the actual merged file.  For unusual input, this is more
 robust than using ed.
 .PP
-If a FILE is `\-', read standard input.
+If a FILE is '\-', read standard input.
 Exit status is 0 if successful, 1 if conflicts, 2 if trouble.
 .SH AUTHOR
 Written by Randy Smith.
@@ -79,7 +79,7 @@ GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <http://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2011 Free Software Foundation, Inc.
+Copyright \(co 2016 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
index 834b5ee..e6207e5 100755 (executable)
@@ -1,7 +1,8 @@
 #!/usr/bin/perl -w
 
 # Generate a short man page from --help and --version output.
-# Copyright (C) 1997-2005, 2009-2011, 2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2005, 2009-2011, 2013, 2015-2016 Free Software Foundation,
+# Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 75b832c..b3bec5c 100644 (file)
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.40.4.
-.TH SDIFF "1" "March 2013" "diffutils 3.3" "User Commands"
+.TH SDIFF "1" "August 2016" "diffutils 3.4" "User Commands"
 .SH NAME
 sdiff \- side-by-side merge of file differences
 .SH SYNOPSIS
@@ -32,7 +32,7 @@ ignore all white space
 ignore changes whose lines are all blank
 .TP
 \fB\-I\fR, \fB\-\-ignore\-matching\-lines\fR=\fIRE\fR
-ignore changes whose lines all match RE
+ignore changes all whose lines match RE
 .TP
 \fB\-\-strip\-trailing\-cr\fR
 strip trailing carriage return on input
@@ -70,7 +70,7 @@ display this help and exit
 \fB\-v\fR, \fB\-\-version\fR
 output version information and exit
 .PP
-If a FILE is `\-', read standard input.
+If a FILE is '\-', read standard input.
 Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
 .SH AUTHOR
 Written by Thomas Lord.
@@ -81,7 +81,7 @@ GNU diffutils home page: <http://www.gnu.org/software/diffutils/>
 .br
 General help using GNU software: <http://www.gnu.org/gethelp/>
 .SH COPYRIGHT
-Copyright \(co 2011 Free Software Foundation, Inc.
+Copyright \(co 2016 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
 .br
 This is free software: you are free to change and redistribute it.
index fff5e49..cf85d7b 100644 (file)
@@ -17,6 +17,7 @@ it
 ja
 lv
 ms
+nb
 nl
 pl
 pt_BR
index fce63a6..65184f6 100644 (file)
@@ -8,13 +8,14 @@
 # Please note that the actual code of GNU gettext is covered by the GNU
 # General Public License and is *not* in the public domain.
 #
-# Origin: gettext-0.18.2
-GETTEXT_MACRO_VERSION = 0.18
+# Origin: gettext-0.19
+GETTEXT_MACRO_VERSION = 0.19
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 
+SED = @SED@
 SHELL = /bin/sh
 @SET_MAKE@
 
@@ -76,6 +77,16 @@ POTFILES = \
 
 CATALOGS = @CATALOGS@
 
+POFILESDEPS_ = $(srcdir)/$(DOMAIN).pot
+POFILESDEPS_yes = $(POFILESDEPS_)
+POFILESDEPS_no =
+POFILESDEPS = $(POFILESDEPS_$(PO_DEPENDS_ON_POT))
+
+DISTFILESDEPS_ = update-po
+DISTFILESDEPS_yes = $(DISTFILESDEPS_)
+DISTFILESDEPS_no =
+DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
+
 # Makevars gets inserted here. (Don't remove this line!)
 
 .SUFFIXES:
@@ -142,15 +153,25 @@ stamp-po: $(srcdir)/$(DOMAIN).pot
 # heuristic whether some file in the top level directory mentions "GNU xyz".
 # If GNU 'find' is available, we avoid grepping through monster files.
 $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
-       if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
-              LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
-            else \
-              LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
-            fi; \
-          } | grep -v 'libtool:' >/dev/null; then \
-         package_gnu='GNU '; \
+       package_gnu="$(PACKAGE_GNU)"; \
+       test -n "$$package_gnu" || { \
+         if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
+                LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
+                              -size -10000000c -exec grep 'GNU @PACKAGE@' \
+                              /dev/null '{}' ';' 2>/dev/null; \
+              else \
+                LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+              fi; \
+            } | grep -v 'libtool:' >/dev/null; then \
+            package_gnu=yes; \
+          else \
+            package_gnu=no; \
+          fi; \
+       }; \
+       if test "$$package_gnu" = "yes"; then \
+         package_prefix='GNU '; \
        else \
-         package_gnu=''; \
+         package_prefix=''; \
        fi; \
        if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
          msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
@@ -170,7 +191,7 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
              --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
              --files-from=$(srcdir)/POTFILES.in \
              --copyright-holder='$(COPYRIGHT_HOLDER)' \
-             --package-name="$${package_gnu}@PACKAGE@" \
+             --package-name="$${package_prefix}@PACKAGE@" \
              --package-version='@VERSION@' \
              --msgid-bugs-address="$$msgid_bugs_address" \
            ;; \
@@ -198,9 +219,10 @@ $(srcdir)/$(DOMAIN).pot:
 
 # This target rebuilds a PO file if $(DOMAIN).pot has changed.
 # Note that a PO file is not touched if it doesn't need to be changed.
-$(POFILES): $(srcdir)/$(DOMAIN).pot
+$(POFILES): $(POFILESDEPS)
        @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
        if test -f "$(srcdir)/$${lang}.po"; then \
+         test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
          test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
          echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
          cd $(srcdir) \
@@ -361,7 +383,7 @@ maintainer-clean: distclean
 
 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 dist distdir:
-       $(MAKE) update-po
+       test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
        @$(MAKE) dist2
 # This is a separate target because 'update-po' must be executed before.
 dist2: stamp-po $(DISTFILES)
index 25d84bf..8a3afda 100644 (file)
@@ -31,6 +31,13 @@ XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ \
 # their copyright.
 COPYRIGHT_HOLDER = Free Software Foundation, Inc.
 
+# This tells whether or not to prepend "GNU " prefix to the package
+# name that gets inserted into the header of the $(DOMAIN).pot file.
+# Possible values are "yes", "no", or empty.  If it is empty, try to
+# detect it automatically by scanning the files in $(top_srcdir) for
+# "GNU packagename" string.
+PACKAGE_GNU =
+
 # This is the email address or URL to which the translators shall report
 # bugs in the untranslated strings:
 # - Strings which are not entire sentences, see the maintainer guidelines
@@ -62,3 +69,15 @@ USE_MSGCTXT = no
 #   --previous            to keep previous msgids of translated messages,
 #   --quiet               to reduce the verbosity.
 MSGMERGE_OPTIONS =
+
+# This tells whether or not to regenerate a PO file when $(DOMAIN).pot
+# has changed.  Possible values are "yes" and "no".  Set this to no if
+# the POT file is checked in the repository and the version control
+# program ignores timestamps.
+PO_DEPENDS_ON_POT = yes
+
+# This tells whether or not to forcibly update $(DOMAIN).pot and
+# regenerate PO files on "make dist".  Possible values are "yes" and
+# "no".  Set this to no if the POT file and PO files are maintained
+# externally.
+DIST_DEPENDS_ON_UPDATE_PO = yes
index b6764e6..c379074 100644 (file)
@@ -1,6 +1,6 @@
 # List of files that contain translatable strings.
 
-# Copyright (C) 2001-2002, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2009-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -15,6 +15,7 @@
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+lib/argmatch.c
 lib/c-stack.c
 lib/error.c
 lib/file-type.c
index d2ac20d..7b92c7e 100644 (file)
@@ -1,3 +1,4 @@
+# This file, Rules-quot, can be copied and used freely without restrictions.
 # Special Makefile rules for English message catalogs with quotation marks.
 
 DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
@@ -20,7 +21,17 @@ en@boldquot.po-update: en@boldquot.po-update-en
        ll=`echo $$lang | sed -e 's/@.*//'`; \
        LC_ALL=C; export LC_ALL; \
        cd $(srcdir); \
-       if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+       if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null \
+          | $(SED) -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | \
+          { case `$(MSGFILTER) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
+            '' | 0.[0-9] | 0.[0-9].* | 0.1[0-8] | 0.1[0-8].*) \
+              $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed \
+              ;; \
+            *) \
+              $(MSGFILTER) `echo $$lang | sed -e 's/.*@//'` \
+              ;; \
+            esac } 2>/dev/null > $$tmpdir/$$lang.new.po \
+            ; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
            rm -f $$tmpdir/$$lang.new.po; \
          else \
index 493c341..7b341e7 100644 (file)
Binary files a/po/ca.gmo and b/po/ca.gmo differ
index 0cd12d8..40df82b 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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
@@ -16,6 +16,21 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "el valor «%s» per l'opció --bytes no és vàlid"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "el valor «%s» per l'opció --bytes no és vàlid"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "error del programa"
@@ -24,113 +39,166 @@ msgstr "error del programa"
 msgid "stack overflow"
 msgstr "desbordament de pila"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Error no identificat del sistema"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "fitxer ordinari buit"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "fitxer ordinari"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "directori"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "fitxer especial de blocs"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "fitxer especial de caràcters"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "cua FIFO"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "enllaç simbòlic"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "connector"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "cua de missatges"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semàfor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objecte de memòria compartida"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "objecte de memòria tipificada"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "fitxer especial de blocs"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "fitxer especial de caràcters"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "cua FIFO"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "fitxer especial de blocs"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "fitxer especial de caràcters"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "fitxer estrambòtic"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "fitxer especial de blocs"
+
+#: 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 "connector"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "fitxer estrambòtic"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: l'opció «%s» és ambigua\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opció «-W %s» és ambigua\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: l'opció «--%s» no admet arguments\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: l'opció «%c%s» no admet arguments\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: l'opció «%s» requereix arguments\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opció no reconeguda «--%s»\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opció no reconeguda «%c%s»\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opció no vàlida -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: l'opció requereix arguments -- %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: l'opció «-W %s» és ambigua\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opció «-W %s» no admet arguments\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: l'opció «%s» requereix arguments\n"
@@ -156,84 +224,85 @@ msgstr "%s: l'opci
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Succés"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Cap resultat"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "L'expressió regular no és vàlida"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "El caràcter de col·lació no és vàlid"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 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:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Hi ha una barra invertida al final"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Hi ha una referència cap enrera no vàlida"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Hi ha un signe [ o ^[ desaparellat"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Hi ha un signe ( o \\( desaparellat"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Hi ha un signe \\{ desaparellat"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "El contingut de \\{\\} no és vàlid"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "El límit superior de l'interval no vàlid"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memòria exhaurida"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "L'expressió regular precedent no és vàlida"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Final prematur de l'expressió regular"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "L'expressió regular és massa gran"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Hi ha un signe ) o \\) desaparellat"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "No hi ha cap expressió regular prèvia"
 
@@ -443,17 +512,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, fuzzy, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "No hi ha cap caràcter de salt de línia al final del fitxer"
 
@@ -467,7 +536,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Proveu «%s --help» per obtenir més informació."
@@ -482,14 +551,12 @@ msgstr "el valor 
 msgid "options -l and -s are incompatible"
 msgstr "les opcions -l i -s són incompatibles"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "error d'escriptura"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "sortida estàndard"
 
@@ -552,7 +619,7 @@ msgid ""
 msgstr ""
 "SALT1 i SALT2 són el nombre d'octets que es passen per alt de cada fitxer."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -572,7 +639,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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"
@@ -583,28 +650,28 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "el valor «%s» per l'opció --bytes no és vàlid"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operand després de «%s»"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "sobra l'operand «%s»"
 
 # mirar el comentari del codi font
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: final de fitxer a %s\n"
@@ -634,134 +701,137 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "el nombre de línies de context «%s» no és vàlid"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "aquest sistema no suporta paginació"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "massa opcions d'etiqueta de fitxer"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "l'amplada «%s» no és vàlida"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "opcions d'amplada incompatibles"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "el nombre de línies d'horitzó «%s» no és vàlid"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "la distància de tabulació «%s» no és vàlida"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "opcions de distància de tabulació incompatibles"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "heu especificat les opcions --from-file i --to-file al mateix temps"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Genera un diff normal."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Indica només si els fitxers difereixen o no."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, 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:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Genera un script ed."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Genera un diff en format RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, 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:863
+#: src/diff.c:892
 #, 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:864
+#: src/diff.c:893
 #, 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:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=FITXER1  Compara FITXER1 amb tots els operands. FITXER1 pot ser\n"
+"                     un directori."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, 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:872
+#: src/diff.c:901
 #, 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:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
@@ -769,40 +839,40 @@ msgstr ""
 "--tabsize=NÚM  Estableix la distància de tabulació en NÚM (8 per omissió)\n"
 "               caràcters."
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  Pagina la sortida amb el programa «pr»."
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive  Compara recursivament qualsevol subdirectori existent."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, 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:880
+#: src/diff.c:909
 #, 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:881
+#: src/diff.c:910
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
@@ -810,19 +880,19 @@ msgstr ""
 "en\n"
 "                         els noms dels fitxers."
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, 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:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x PAT  --exclude=PAT  Exclou fitxers que coincideixen amb PAT."
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -830,7 +900,7 @@ msgstr ""
 "-X FITXER  --exclude-from=FITXER  Exclou fitxers que coincideixen amb\n"
 "                                  qualsevol patró de FITXER."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -838,7 +908,7 @@ msgstr ""
 "-S FITXER  --starting-file=FITXER  Comença per FITXER quan es comparen\n"
 "                                   directoris."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -847,7 +917,7 @@ msgstr ""
 "--from-file=FITXER1  Compara FITXER1 amb tots els operands. FITXER1 pot ser\n"
 "                     un directori."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -856,66 +926,66 @@ msgstr ""
 "--to-file=FITXER1  Compara tots els operands amb FITXER2. FITXER2 pot ser\n"
 "                   un directori."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, 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:892
+#: src/diff.c:921
 #, 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:893
+#: src/diff.c:922
 #, 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:894
+#: src/diff.c:923
 #, 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:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  Ignora tot l'espai en blanc."
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, 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:897
+#: src/diff.c:926
 #, 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:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Tracta tots els fitxers com a text."
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, 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:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Escriu i llegeix dades en mode binari."
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -924,30 +994,30 @@ msgstr ""
 "                      amb directives `#ifdef NOM'."
 
 # `grups' o `grups de línies' (no queda prou clar)
-#: src/diff.c:906
+#: src/diff.c:935
 #, 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:907
+#: src/diff.c:936
 #, 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:908
+#: src/diff.c:937
 #, 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
@@ -955,7 +1025,7 @@ msgstr ""
 "«unchanged» (inalterades).\n"
 "  TIPUSG pot ser qualsevol TIPUSL o bé «changed» (alterades)."
 
-#: src/diff.c:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -985,7 +1055,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -999,7 +1069,7 @@ msgstr ""
 "    %[-][AMPLADA][.[PRECISIÓ]]{doxX}n  espec. estil printf pel nombre de "
 "línia"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1013,17 +1083,17 @@ msgstr ""
 "    %c'C'  el caràcter C\n"
 "    %c'\\OOO'  el caràcter de codi octal OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Intenta trobar canvis mínims."
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, 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:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1031,85 +1101,110 @@ msgstr ""
 "-H  --speed-large-files  Assumeix fitxers grans i molts canvis petits "
 "dispersos."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Genera un diff normal."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Mostra la versió del programa."
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Mode d'ús: %s [OPCIÓ]... FITXERS\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Compara fitxers línia per línia."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "el valor «%s» per l'opció %s és conflictiu"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "opcions d'estil de sortida conflictives"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "l'amplada «%s» no és vàlida"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Només a %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "no es pot comparar «-» amb un directori"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "l'opció -D no funciona amb directoris"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectoris comuns: %s i %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Els fitxers %s i %s difereixen\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Els fitxers %s i %s són idèntics\n"
@@ -1129,7 +1224,7 @@ msgstr "opcions incompatibles"
 msgid "'-' specified for more than one input file"
 msgstr "heu especificat «-» per més d'un fitxer d'entrada"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lectura fallida"
@@ -1269,33 +1364,33 @@ msgstr "error intern: tipus de diff inv
 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:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "el format diff no és vàlid: l'última línia està incompleta"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "no s'ha pogut invocar el programa subsidiari «%s»"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 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:1373
+#: src/diff3.c:1374
 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:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "el fitxer d'entrada s'ha encongit"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, 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:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1468,6 +1563,16 @@ msgstr ""
 "v:\tInclou les línies comunes i informa amb loquacitat\n"
 "q:\tSurt.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: opció no reconeguda «--%s»\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: opció il·legal -- %c\n"
 
index d18c765..b1cdc40 100644 (file)
Binary files a/po/cs.gmo and b/po/cs.gmo differ
index 276ce12..eb72188 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -2,20 +2,36 @@
 # Copyright (C) 1998, 2002, 2004, 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
 # Petr Kočvara <petr.kocvara@nemfm.cz>, 1998, 2002, 2004, 2010
+# Petr Pisar <petr.pisar@atlas.cz, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.0\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2010-05-04 17:21+0100\n"
-"Last-Translator: Petr Kočvara <petr.kocvara@nemfm.cz>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2014-04-16 06:33+0200\n"
+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
 "Language: cs\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "neplatný argument „%3$s“ přepínače %1$s%2$s"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "neplatný argument „%3$s“ přepínače %1$s%2$s"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "chyba programu"
@@ -24,116 +40,169 @@ msgstr "chyba programu"
 msgid "stack overflow"
 msgstr "přetečení zásobníku"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Neznámá chyba systému"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "obyčejný prázdný soubor"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "obyčejný soubor"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "adresář"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "speciální blokový soubor"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "speciální znakový soubor"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "roura"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "symbolický odkaz"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "fronta zpráv"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objekt sdílené paměti"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "objekt typové paměti"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "speciální blokový soubor"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "speciální znakový soubor"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "roura"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "speciální blokový soubor"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "speciální znakový soubor"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "soubor neznámého typu"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "speciální blokový soubor"
+
+#: 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 "soket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "soubor neznámého typu"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: přepínač '%s' není jednoznačný\n"
+msgstr "%s: přepínač „%s“ není jednoznačný; možnosti:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: přepínač '--%s' musí být zadán bez argumentu\n"
+msgstr "%s: přepínač „--%s“ musí být zadán bez argumentu\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: přepínač '%c%s' musí být zadán bez argumentu\n"
+msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: přepínač '--%s' vyžaduje argument\n"
+msgstr "%s: přepínač „--%s“ vyžaduje argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: neznámý přepínač '--%s'\n"
+msgstr "%s: neznámý přepínač „--%s“\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: neznámý přepínač '%c%s'\n"
+msgstr "%s: neznámý přepínač „%c%s“\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: neznámý přepínač -- '%c'\n"
+msgstr "%s: neznámý přepínač – „%c“\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: přepínač vyžaduje argument -- '%c'\n"
+msgstr "%s: přepínač vyžaduje argument – „%c“\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: přepínač '-W %s' není jednoznačný\n"
+msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: přepínač '-W %s' musí být zadán bez argumentu\n"
+msgstr "%s: přepínač „-W %s“ musí být zadán bez argumentu\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: přepínač '-W %s' vyžaduje argument\n"
+msgstr "%s: přepínač „-W %s“ vyžaduje argument\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -156,83 +225,84 @@ msgstr "%s: přepínač '-W %s' vyžaduje argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "“"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Hotovo"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Žádná shoda"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Neplatný regulární výraz"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Neplatný znak porovnání"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Neplatné jméno třídy znaků"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Koncové zpětné lomítko"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Neplatný zpětný odkaz"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nepárová [ nebo ]^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Nepárová ( nebo \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Nepárová \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Neplatný obsah \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Neplatný konec rozsahu"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Paměť vyčerpána"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Neplatný předchozí regulární výraz"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Předčasný konec regulárního výrazu"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Regulární výraz je příliš dlouhý"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Nepárová ) nebo \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Předchozí regulární výraz neexistuje"
 
@@ -262,19 +332,19 @@ msgid "failed to reopen %s with mode %s"
 msgstr "nelze znovuotevřít %s v módu %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "neplatná hodnota %s%s pÅ\99epínaÄ\8de `%s'"
+msgstr "neplatný argument â\80\9e%3$sâ\80\9c pÅ\99epínaÄ\8de %1$s%2$s"
 
 #: lib/xstrtol-error.c:68
-#, fuzzy, c-format
+#, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr "neplatná přípona v hodnotě %s%s přepínače `%s'"
+msgstr "neplatná přípona argumentu „%3$s“ přepínače %2$s%1$s"
 
 #: lib/xstrtol-error.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "%s%s argument '%s' too large"
-msgstr "hodnota %s%s přepínače `%s' je příliš velká"
+msgstr "argument „%3$s“ přepínače %1$s%2$s je příliš velký"
 
 #: lib/version-etc.c:74
 #, c-format
@@ -455,17 +525,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Obecná pomoc při používání softwaru GNU:: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Soubory %s a %s jsou různé\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binární soubory %s a %s jsou rozdílné\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Chybí znak konce řádku na konci souboru"
 
@@ -479,95 +549,89 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Více informací získáte příkazem `%s --help'."
+msgstr "Více informací získáte příkazem „%s --help“."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "neplatná hodnota --ignore-inital `%s'"
+msgstr "neplatná hodnota --ignore-inital „%s“"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "přepínače -l a -s nejsou kompatibilní"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "zápis selhal"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardní výstup"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Vypíše rozdílné bajty."
+msgstr "-b  --print-bytes          vypíše rozdílné bajty"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i N  --ignore-initial=N  Ignoruje prvních N bajtů na vstupu."
+msgstr "-i, --ignore-initial=N     přeskočí prvních N bajtů obou vstupů"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"  Přeskočí prvních N1 bajtů souboru SOUBOR1 a prvních N2 bajtů souboru "
-"SOUBOR2."
+"-i, --ignore-initial=N1:N2 přeskočí prvních N1 bajtů SOUBORU1 a\n"
+"                             prvních N2 bajtů SOUBORU2"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l  --verbose  Vypíše pozice a hodnoty všech rozdílných bajtů."
+msgstr "-l  --verbose              vypíše pozice a hodnoty rozdílných bajtů"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMIT  --bytes=LIMIT  Porovná maximálně LIMIT bajtů."
+msgstr "-n, --bytes=LIMIT          porovná nejvýše LIMIT bajtů"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      potlačí veškerý běžný výstup"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 zobrazí tuto nápovědu a skončí"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Informace o verzi."
+msgstr "-v  --version              vypíše údaje o verzi a skončí"
 
 #: src/cmp.c:178
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Použití: %s [PŘEPÍNAČ]... SOUBOR1 [SOUBOR2 [SKIP1 [SKIP2]]]\n"
+msgstr "Použití: %s [PŘEPÍNAČ]… SOUBOR1 [SOUBOR2 [N1 [N2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Porovnání dvou soborů bajt po bajtu."
+msgstr "Porovnává dva soubory bajt po bajtu."
 
 #: src/cmp.c:182
-#, 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 a N2 udávají počet bajtů, které budou ignorovány v každém souboru."
+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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -575,51 +639,49 @@ msgid ""
 "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 ""
-"Hodnoty SKIP mohou být doplněny následujícími příponami:\n"
-"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."
+"Hodnoty N1 a N2 mohou být doplněny následujícími násobnými příponami:\n"
+"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:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr ""
-"Pokud SOUBOR bude `-' nebo nebude existovat, bude čten standardní vstup."
+msgstr "Pokud SOUBOR je „-“ nebo nebo chybí, bude čten standardní vstup."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "neplatná hodnota přepínače --bytes `%s'"
+msgstr "neplatná hodnota přepínače --bytes „%s“"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "po `%s' je nesprávný operand"
+msgstr "po „%s“ chybí operand"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "operand `%s' je nadbytečný"
+msgstr "operand „%s“ je nadbytečný"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s se liší: bajt %s, řádek %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
-msgstr "cmp: EOF v %s\n"
+msgstr "cmp: konec souboru v %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
@@ -646,319 +708,301 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "neplatná délka kontextu `%s'"
+msgstr "neplatná délka kontextu „%s“"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, 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:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "příliš mnoho přepínačů popisu souboru"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "nesprávná délka `%s'"
+msgstr "nesprávná délka „%s“"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "konfliktní volby šířky výstupu"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "neplatná délka obzoru `%s'"
+msgstr "neplatná výška obzoru „%s“"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "nesprávná hodnota tabsize `%s'"
+msgstr "nesprávná hodnota --tabsize „%s“"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "konfliktní přepínače tabsize"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "parametry --from-file i to-file použity najednou"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Výstup bude v normálním diff formátu."
+msgstr "    --normal                  normálním formát výstupu diff (výchozí)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Výstup pouze při rozdílných souborech."
+msgstr "-q  --brief                   výstup pouze při rozdílných souborech"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Uvede pouze shodné soubory."
+msgstr "-s  --report-identical-files  hlásí shodné soubory"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c, -C POČET, --context[=POČET]\n"
+"                              vypíše POČET (výchozí je 3) řádků\n"
+"                              kopírovaného kontextu"
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w POČ  --width=POČ  Vypíše maximálně POČ (implicitně 130) znaků na řádek."
+"-u, -U POČET, --unified[=POČET]\n"
+"                              vypíše POČET (výchozí je 3) řádků\n"
+"                              unifikovaného kontextu"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Vytvoří skript pro ed."
+msgstr "-e  --ed                      vypíše skript pro ed"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Výstup bude ve formátu RCS diff."
+msgstr "-n  --rcs                     vypíše rozdíl ve formátu RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            vypíše ve dvou sloupcích"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w POČ  --width=POČ  Vypíše maximálně POČ (implicitně 130) znaků na řádek."
+"-W, --width=POČET             vypíše nejvýše POČET (výchozí je 130)\n"
+"                              tiskových sloupců"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column  Vypíše pouze levý sloupec společných řádků."
+msgstr ""
+"    --left-column             vypíše pouze levý sloupec společných řádků"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Nevypisuje shodné řádky."
+msgstr "    --suppress-common-lines   nevypisuje shodné řádky"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr ""
+msgstr "-F, --show-function-line=RV   ukáže poslední řádek odpovídající RV"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label NÁZEV             použije NÁZEV místo názvu souboru\n"
+"                              (lze opakovat)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Ve výstupu převede tabulátory na mezery."
+msgstr "-t,  --expand-tabs             ve výstupu převede tabulátory na mezery"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Na začátek řádků se vloží tabulátor."
+msgstr "-T,  --initial-tab             na začátek řádků se vloží tabulátor"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=POČ  Tab zastavuje každých POČ (implicitně 8) tiskových sloupců."
+"    --tabsize=POČET           tabulátor zastavuje každých POČET\n"
+"                              (výchozí je 8) tiskových sloupců"
 
-#: src/diff.c:874
-#, fuzzy
+#: src/diff.c:903
 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."
+"    --suppress-blank-empty    potlačí mezeru nebo tabulátor před prázdnými\n"
+"                              řádky výstupu"
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate  Výstup projde přes `pr' pro přestránkování."
+msgstr ""
+"-l,  --paginate                výstup projde přes „pr“ pro přestránkování"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Rekurzívní porovnání všech nalezených podadresářů."
+msgstr ""
+"-r  --recursive                 rekurzivně porovná všechny nalezené "
+"podadresáře"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            nenásleduje symbolické odkazy"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Neexistující soubory považuje za prázdné."
+msgstr ""
+"-N, --new-file                  neexistující soubory považuje za prázdné"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file  Při porovnávání adresářů považuje neexistující\n"
-"                           soubory v prvém adresáři za prázdné."
+"    --unidirectional-new-file   neexistující soubory z prvního adresáře\n"
+"                                považuje za prázdné"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
-msgstr "--ignore-file-name-case  Ignoruje velikost písmen v názvech souborů."
+msgstr ""
+"    --ignore-file-name-case     ignoruje velikost písmen v názvech souborů"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 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ů."
+"    --no-ignore-file-name-case  bere v potaz velikost písmen v názvech "
+"souborů"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x VZOR  --exclude=VZOR  Vynechá soubory odpovídající VZORu."
+msgstr "-x, --exclude=VZOR              vynechá soubory odpovídající VZORU"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X SOUBOR  --exclude-from=SOUBOR  Vynechá soubory, které odpovídají\n"
-"                                  libovolnému vzorku ze SOUBORu."
+"-X, --exclude-from=SOUBOR       vynechá soubory, které odpovídají\n"
+"                                libovolnému vzoru ze SOUBORU"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S SOUBOR  --starting-file=SOUBOR  Při porovnávání adresářů začne souborem\n"
-"                                   SOUBOR."
+"-S, --starting-file=SOUBOR      při porovnávání adresářů začne SOUBOREM"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=SOUBOR1  Porovná SOUBOR1 se všemi operandy. SOUBOR1 může být\n"
-"                     adresář."
+"    --from-file=SOUBOR1         porovná SOUBOR1 se všemi operandy,\n"
+"                                SOUBOR1 může být adresář"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=SOUBOR2  Porovná všechny operandy se SOUBOR2. SOUBOR2 může být\n"
-"                   adresář."
+"    --to-file=SOUBOR2           porovná všechny operandy se SOUBOREM2,\n"
+"                                SOUBOR2 může být adresář"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  Ignoruje velikost písmen v obsahu souboru."
+msgstr ""
+"-i, --ignore-case               ignoruje velikost písmen v obsahu souborů"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Ignoruje změny v odsazení tabelátorem."
+msgstr "-E, --ignore-tab-expansion      ignoruje změny v odsazení tabulátorem"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignoruje všechny mezery."
+msgstr "-Z, --ignore-trailing-space     ignoruje bílá místa na konci řádku"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignoruje změny v počtu mezer."
+msgstr "-b, --ignore-space-change       ignoruje změny v počtu bílých míst"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Ignoruje všechny mezery."
+msgstr "-w, --ignore-all-space          ignoruje všechna bílá místa"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 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ů."
+msgstr ""
+"-B, --ignore-blank-lines        ignoruje změny v případě prázdných řádků"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RV  --ignore-matching-lines=RV  Ignoruje změny na všech řádcích\n"
-"                                   odpovídajících RV."
+"-I, --ignore-matching-lines=RV  ignoruje změny na všech řádcích\n"
+"                                odpovídajících RV"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Pokládá všechny soubory za text."
+msgstr "-a, --text                      pokládá všechny soubory za text"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Odstraní ukončovací znak CR na vstupu."
+msgstr "    --strip-trailing-cr         odstraní ukončovací znak CR na vstupu"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Čte a zapisuje data v binárním režimu."
+msgstr ""
+"    --binary                    data čte a zapisuje data v binárním režimu"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D JMENO  --ifdef=JMENO  Vypíše sloučený soubor s rozdíly `#ifdef JMENO'."
+"-D, --ifdef=NÁZEV               vypíše sloučený soubor s rozdíly „#ifdef "
+"NÁZEV“"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
-"--GTYPE-group-format=FMTS  Podobné, ale formátuje vstupní skupiny GTYPE\n"
-"                           podle FMTS."
+"    --GTYPE-group-format=GFMT   formátuje vstupní skupiny GTYPE podle FMTS"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
-"--line-format=FMTR  Podobně, ale formátuje všechny vstupní řádky podle FMTR."
+"    --line-format=LFMT          formátuje všechny vstupní řádky podle LFMT"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
-"--LTYPE-line-format=FMTR  Podobné, ale formátuje vstupní řádky LTYPE podle "
-"FMTR."
+"    --LTYPE-line-format=LFMT    formátuje vstupní řádky LTYPE podle LFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Tyto formátovací přepínače poskytují jemnou kontrolu nad výstupem diffu\n"
+"  a zobecňují -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE je `starý', `nový' nebo `nezměněn'. GTYPE je LTYPE nebo `změněn'."
+"  LTYPE je „old“ (starý), „new“ (nový) nebo „unchanged“ (nezměněn). GTYPE\n"
+"  je LTYPE nebo „changed“ (změněn)."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -974,33 +1018,33 @@ msgid ""
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
 "  GFMT může obsahovat:\n"
-"    %<  řádky ze SOUBOR1\n"
-"    %>  řádky ze SOUBOR2\n"
+"    %<  řádky ze SOUBORU1\n"
+"    %>  řádky ze SOUBORU2\n"
 "    %=  řádky společné pro SOUBOR1 i SOUBOR2\n"
-"    %[-][DELKA][.[PRES]]{doxX}ZNAK  formát stylu printf pro ZNAK\n"
+"    %[-][DÉLKA][.[PŘESNOST]]{doxX}ZNAK  formát stylu printf pro ZNAK\n"
 "      ZNAKy dále jsou pro novou skupinu, malými písmeny pro starou skupinu:\n"
 "        F  číslo prvního řádku\n"
 "        L  číslo posledního řádku\n"
 "        N  počet řádků = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  pokud A se rovná B, tak T, jinak E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 může obsahovat:\n"
+"  LFMT (pouze) smí obsahovat:\n"
 "    %L  obsah řádku\n"
-"    %l  obsah řádku, s vyjímkou znaku konce řádku\n"
-"    %[-][ŠÍŘKA][.[PŘES]]{doxX}c  formát stylu printf pro číslo vstupního "
-"řádku"
+"    %l  obsah řádku, bez znaku konce řádku\n"
+"    %[-][ŠÍŘKA][.[PŘESNOST]]{doxX}n  formát stylu printf pro číslo "
+"vstupního\n"
+"        řádku"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1008,110 +1052,129 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-"  Jeden z GFMT nebo LFMT může obsahovat:\n"
+"  Jak GFMT, tak i LFMT smí obsahovat:\n"
 "    %%  %\n"
 "    %c'C'  jeden znak C\n"
-"    %c'\\000'  znak s osmičkovým kódem 000"
+"    %c'\\000'  znak s osmičkovým kódem 000\n"
+"    C    znak C (ostatní znaky zastupují samy sebe)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Pokusí se nalézt nejmenší sadu změn."
+msgstr "-d, --minimal            pokusí se nalézt nejmenší sadu změn"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=POČET  Ponechá POČET shodných řádků předpony a přípony."
+"    --horizon-lines=POČET\n"
+"                        ponechá POČET shodných řádků předpony a přípony"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Předpokládá velké soubory a mnoho rozptýlených\n"
-"                         drobných změn."
+"    --speed-large-files  předpokládá velké soubory a mnoho rozptýlených\n"
+"                         drobných změn"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Informace o verzi."
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  normálním formát výstupu diff (výchozí)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"    --palette=PALETTE    specify the colors to use when --color is active"
 msgstr ""
-"SOUBORY jsou `SOUBOR1 SOUBOR2' nebo `ADRESAR1 ADRESAR2' nebo\n"
-"`ADRESAR SOUBOR...' nebo `SOUBOR... ADRESAR'."
 
-#: src/diff.c:942
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               zobrazí tuto nápovědu a skončí"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            vypíše údaje o verzi a skončí"
+
+#: src/diff.c:974
 #, fuzzy
+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:975
 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á "
+"Pokud je uveden --from-file nebo --to-file, pak nejsou u SOUBORŮ žádná "
 "omezení."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Pokud SOUBOR bude `-', bude čten standardní vstup."
+msgstr "Pokud SOUBOR bude „-“, bude čten standardní vstup."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Použití: %s [PŘEPÍNAČ]... SOUBORY\n"
+msgstr "Použití: %s [PŘEPÍNAČ] SOUBORY\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Porovnání souborů řádek po řádku."
+msgstr "Porovnává SOUBORY řádek po řádku."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "pro přepínač %s konfliktní hodnota `%s'"
+msgstr "konfliktní hodnota „%2$s“ přepínače „%1$s“"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktní přepínače pro styl výstupu"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "nesprávná délka „%s“"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Pouze v %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "`-' s adresářem nelze porovnat"
+msgstr "„-“ s adresářem nelze porovnat"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D přepínač nepodporuje práci s adresáři"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Společné podadresáře: %s a %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "Soubor %s je %s pokud soubor %s je %s\n"
+msgstr "Soubor %s je %s zatímco soubor %s je %s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Soubory %s a %s jsou různé\n"
+msgstr "Symbolické odkazy %s a %s se liší\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Soubory %s a %s jsou identické\n"
@@ -1127,100 +1190,97 @@ msgid "incompatible options"
 msgstr "nekompatibilní přepínače"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "`-' zadáno pro více než jeden vstupní soubor"
+msgstr "„-“ zadáno pro více než jeden vstupní soubor"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "čtení selhalo"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Vypíše všechny rozdíly, konflikty v závorkách."
+msgstr ""
+"-A, --show-all              vypíše všechny rozdíly, konflikty v závorkách"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Vypíše nespojené změny ze STARYSOUBOR k VASSOUBOR do MUJSOUBOR."
+"-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:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E  --show-overlap  Vypíše nesloučené změny, konflikty v závorkách."
+msgstr "-E, --show-overlap          jako -e, ale konflikty umístí do závorek"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Vypíše nesloučené nepřekrývající se změny."
+msgstr ""
+"-3, --easy-only             jako -e, ale zahrne jen nepřekrývající se změny"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Vypíše překrývající se změny."
+msgstr ""
+"-x, --overlap-only          jako -e, ale zahrne jen překrývající se změny"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          jako -x, ale konflikty umístí do závorek"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Přidá příkazy `w' a `q' do skriptů pro ed."
+msgstr "-i                          přidá příkazy „w“ a „q“ do skriptů pro ed"
 
 #: src/diff3.c:438
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 vypíše vlastní spojený soubor podle -A, nebyly-"
+"li\n"
+"                            uvedeny další přepínače"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Pokládá všechny soubory za text."
+msgstr "-a, --text                  pokládá všechny soubory za text"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Odstraní ukončovací znak CR na vstupu."
+msgstr "    --strip-trailing-cr     odstraní ukončovací znak CR na vstupu"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Na začátek řádků se vloží tabulátor."
+msgstr "-T, --initial-tab           na začátek řádků se vloží tabulátor"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Použij PROGRAM k porovnání souborů."
+msgstr "    --diff-program=PROGRAM  použije PROGRAM k porovnání souborů"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=NÁZEV           použije NÁZEV namísto názvu souboru\n"
+"                            (lze opakovat až třikrát)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  zobrazí tuto nápovědu a skončí"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Informace o verzi."
+msgstr "-v, --version               vypíše údaje o verzi a skončí"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Použití: %s [PŘEPÍNAČ]... MUJSOUBOR STARYSOUBOR VASSOUBOR\n"
+msgstr "Použití: %s [PŘEPÍNAČ]… MŮJ_SOUBOR STARÝ_SOUBOR VÁŠ_SOUBOR\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
@@ -1239,6 +1299,16 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"Výchozí výstupní formát je více méně člověkem čitelná reprezentace změn.\n"
+"\n"
+"Přepínače -e, -E, -x, -X (a odpovídající dlouhé přepínače) způsobí vypsání\n"
+"skriptu pro program ed namísto výchozího formátu.\n"
+"\n"
+"Nakonec přepínač -m (--merge) způsobí, že diff3 provede spojení sám a "
+"vypíše\n"
+"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:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
@@ -1261,33 +1331,33 @@ msgstr "vnitřní chyba: nesprávný typ diffu v process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "neplatný formát diff souboru; neplatný oddělovač změny"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "neplatný formát diff souboru; nekompletní poslední řádek"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "pomocný program `%s' nelze spustit"
+msgstr "pomocný program „%s“ nebylo možné zavolat"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "neplatný formát diff souboru; nesprávné úvodní znaky na řádku"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "vnitřní chyba: nesprávný typ diffu pro výstup"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "vstupní soubor se zmenšil"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "nemohu porovnat jména souborů `%s' a `%s'"
+msgstr "nelze porovnat názvy souborů „%s“ a „%s“"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: smyčka v rekurzi adresářů"
@@ -1298,127 +1368,113 @@ msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o SOUBOR  --output=SOUBOR  Interaktivní práce, výstup půjde do SOUBORu."
+"-o, --output=SOUBOR          interaktivní režim, výstup půjde do SOUBORU"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  Nerozlišuje velká a malá písmena."
+msgstr "-i, --ignore-case            nerozlišuje velká a malá písmena"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Ignoruje změny v odsazení tabelátorem."
+msgstr "-E, --ignore-tab-expansion   ignoruje změny v odsazení tabulátorem"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignoruje všechny mezery."
+msgstr ""
+"-Z, --ignore-trailing-space  ignoruje všechny bílé znaky na konci řádku"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignoruje změny v počtu mezer."
+msgstr "-b, --ignore-space-change    ignoruje změny v počtu bílých znaků"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Ignoruje všechny mezery."
+msgstr "-W, --ignore-all-space       ignoruje všechny bílé znaky"
 
 #: src/sdiff.c:180
-#, fuzzy
 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ů."
+msgstr "-B, --ignore-blank-lines     ignoruje změny v případě prázdných řádků"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RV  --ignore-matching-lines=RV  Ignoruje změny na všech řádcích\n"
-"                                   odpovídajících RV."
+"-I, --ignore-matching-lines=RV  ignoruje změny na všech řádcích\n"
+"                                odpovídajících RV"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Odstraní ukončovací znak CR na vstupu."
+msgstr "    --strip-trailing-cr      odstraní ukončovací znak CR na vstupu"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Pokládá všechny soubory za text."
+msgstr "-a,  --text                  pokládá všechny soubory za text"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w POČ  --width=POČ  Vypíše maximálně POČ (implicitně 130) znaků na řádek."
+"-w, --width=POČET            vypíše nejvýše POČET (výchozí je 130) "
+"tiskových\n"
+"                             sloupců"
 
 #: src/sdiff.c:186
-#, fuzzy
 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ů."
+msgstr ""
+"-l, --left-column            vypíše pouze levý sloupec společných řádků"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Nevypisuje shodné řádky."
+msgstr "-s, --suppress-common-lines  nevypisuje společné řádky"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Ve výstupu převede tabulátory na mezery."
+msgstr "-t, --expand-tabs            ve výstupu převede tabulátory na mezery"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=POČ  Tab zastavuje každých POČ (implicitně 8) tiskových sloupců."
+"   --tabsize=POČET          tabulátor zastavuje každých POČET (výchozí je "
+"8)\n"
+"                            tiskových sloupců"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Pokusí se nalézt nejmenší sadu změn."
+msgstr "-d, --minimal                pokusí se nalézt nejmenší sadu změn"
 
 #: src/sdiff.c:193
-#, fuzzy
 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."
+"-H, --speed-large-files      předpokládá velké soubory a mnoho rozptýlených\n"
+"                             drobných změn"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAM  Použij PROGRAM k porovnání souborů."
+msgstr "    --diff-program=PROGRAM   použije PROGRAM k porovnání souborů"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   zobrazí tuto nápovědu a skončí"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Informace o verzi."
+msgstr "-v, --version                vypíše údaje o verzi a skončí"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Použití: %s [PŘEPÍNAČ]... SOUBOR1 SOUBOR2\n"
+msgstr "Použití: %s [PŘEPÍNAČ] SOUBOR1 SOUBOR2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Aplikace změn v souboru v módu `vedle sebe`."
+msgstr "Spojí změny mezi SOUBOREM1 a SOUBOREM2 v režimu „vedle sebe“."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
@@ -1452,6 +1508,16 @@ msgstr ""
 "v:\tUpozorní na vložení společných řádků.\n"
 "q:\tUkončení.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: neznámý přepínač „--%s“\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i N1:N2  --ignore-initial=N1:N2"
 
index 922050e..3c4d665 100644 (file)
Binary files a/po/da.gmo and b/po/da.gmo differ
index 94b8eb3..14e331f 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-11-03 14:34+0100\n"
 "Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -19,6 +19,21 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 0.9.5\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "ugyldigt %s%s-argument '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "ugyldigt %s%s-argument '%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "programfejl"
@@ -27,113 +42,166 @@ msgstr "programfejl"
 msgid "stack overflow"
 msgstr "stakoverløb"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Ukendt systemfejl"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "almindelig tom fil"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "almindelig fil"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "katalog"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "blok-specialfil"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "tegn-specialfil"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "symbolsk lænke"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "stik"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "meddelelseskø"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "signal"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "delt hukommelses-objekt"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "typeangivet hukommelses-objekt"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "blok-specialfil"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "tegn-specialfil"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "blok-specialfil"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "tegn-specialfil"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "mystisk fil"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "blok-specialfil"
+
+#: 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 "stik"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "mystisk fil"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: tilvalget '%s' er flertydigt; muligheder:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tilvalget '-W %s' er flertydigt\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: tilvalg '--%s' tillader ikke et argument\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: tilvalg '%c%s' tillader ikke et argument\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: tilvalg '--%s' kræver et argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: ukendt tilvalg '--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: ukendt tilvalg '%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ugyldigt tilvalg -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: tilvalg kræver et argument -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: tilvalget '-W %s' er flertydigt\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: tilvalget '-W %s' tillader ikke et argument\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: tilvalget '-W %s' tillader ikke et argument\n"
@@ -159,83 +227,84 @@ msgstr "%s: tilvalget '-W %s' tillader ikke et argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "'"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Succes"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Ingen match"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Ugyldigt regulært udtryk"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Ugyldig sammenlignings-tegn"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Ugyldigt navn på tegn-klasse"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Efterstillet backslash"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Ugyldig bagud-reference"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Uparret [ eller [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Uparret ( eller \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Uparret \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Ugyldigt indhold af \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Ugyldig område-afslutning"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Hukommelse opbrugt"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Ugyldigt foranstillet regulært udtryk"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "For tidlig afslutning på regulært udtryk"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "For stort regulært udtryk"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Uparret ) eller \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Intet foranstillet regulært udtryk"
 
@@ -453,17 +522,17 @@ msgstr "Hjemmeside for %s: <http://www.gnu.org/software/%s/>\n"
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Generel hjælp til GNU-programmer: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Filerne %s og %s er forskellige\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binære filer %s og %s er forskellige\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Intet linjeskift ved filafslutning"
 
@@ -477,7 +546,7 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Prøv '%s --help' for mere information."
@@ -492,14 +561,12 @@ msgstr "ugyldig værdi '%s' for --ignore-initial"
 msgid "options -l and -s are incompatible"
 msgstr "tilvalgene -l og -s er inkompatible"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "skrivning mislykkedes"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard-ud"
 
@@ -562,7 +629,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -583,7 +650,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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."
@@ -593,27 +660,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "ugyldig værdi '%s' for --bytes"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "manglende operand efter '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "ekstra operand '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s afviger: byte %s, linje %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: filafslutning på %s\n"
@@ -643,61 +710,61 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ugyldig kontekstlængde '%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginering understøttes ikke af denne vært"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "for mange fil-mærke tilvalg"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ugyldig bredde '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "modstridende breddeangivelser"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ugyldig horisontlængde '%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ugyldig tabulatorbredde '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "modstridende angivelser af tabulatorbredde"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "både --from-file og --to-file er angivet"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  udskriv en almindelig diff (forvalg)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   angiv kun når filerne er forskellige"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
@@ -705,139 +772,140 @@ msgstr ""
 "kopieret\n"
 "                                   kontekst"
 
-#: src/diff.c:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      udskriv et ed-script"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     udskriv en diff i RCS-format"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            udskriv i to kolonner"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   udskriv ikke fælles linjer"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label MÆRKAT            brug MÆRKAT frem for filnavn\n"
 "                                (kan gentages)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             lav tabulatorer om til mellemrum i udskrift"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ANTAL           tabulatorstop for hver ANTAL (normalt 8) "
 "kolonner"
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                led uddata gennem 'pr' for at sideinddele det"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 sammenlign alle fundne underkataloger "
 "rekursivt"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            følg ikke symbolske lænker"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  behandl manglende filer som var de tomme"
 
-#: src/diff.c:880
+#: src/diff.c:909
 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:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MØNSTER           udelad filer, det matcher MØNSTER"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -845,7 +913,7 @@ msgstr ""
 "    --from-file=FIL1            sammenlign FIL1 med alle operander; FIL1 må\n"
 "                                  godt være et katalog"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -854,74 +922,74 @@ msgstr ""
 "må\n"
 "                                  godt være et katalog"
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i, --ignore-case               ignorér versalforskelle i filindhold"
 
-#: src/diff.c:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          ignorér alle blanke tegn"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      behandl alle filer som tekst"
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "    --strip-trailing-cr         fjern afsluttende vognretur i inddata"
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    læs og skriv data binært"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          formatér alle inputlinjer med LFMT"
 
-#: src/diff.c:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -929,7 +997,7 @@ msgstr ""
 "  Disse formattilvalg giver finkontrol over udskriften af diff, og\n"
 "    generaliserer -D/--ifdef."
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE er 'old' (gammel), 'new' (ny) eller 'unchanged' (uændret).\n"
@@ -937,7 +1005,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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -967,7 +1035,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  hvis A lig med B så T, ellers E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -979,7 +1047,7 @@ msgstr ""
 "    %l  indhold af linje, undtagen eventuelt følgende linjeskift\n"
 "    %[-][BREDDE][.[PRÆC]]{doxX}n  printf-angivelse for inputlinjenummer"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -993,97 +1061,123 @@ msgstr ""
 "    %c'\\OOO'  tegnet med oktalkode OOO\n"
 "    C    tegnet C (andre tegn repræsenterer sig selv)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  udskriv en almindelig diff (forvalg)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               vis denne hjælpetekst og afslut"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            vis versionsoplysninger og afslut"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Brug: %s [TILVALG]... FILER\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Sammenlign filer linjevis."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "modstridende værdi for %s-tilvalget: '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "modstridende valg af uddata-stil"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ugyldig bredde '%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Kun i %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "kan ikke sammenligne '-' med et katalog"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D tilvalg understøttes ikke for kataloger"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Identiske underkataloger: %s og %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "De symbolske lænker %s og %s er forskellige\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Filerne %s og %s er identiske\n"
@@ -1102,7 +1196,7 @@ msgstr "inkompatible tilvalg"
 msgid "'-' specified for more than one input file"
 msgstr "'-' angivet for mere end én ind-fil"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "læsning mislykkedes"
@@ -1247,33 +1341,33 @@ msgstr "intern fejl: ugyldig diff type i process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "ugyldigt diff format; ugyldig ændrings-separator"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "ugyldigt diff format; uafsluttet sidste linje"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "hjælpeprogrammet '%s' kunne ikke køres"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ugyldigt diff format; forkerte linje-begyndelses-tegn"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "intern fejl: ugyldig diff type sendt til uddata"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "ind-fil formindskedes"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan ikke sammenligne filnavnene '%s' og '%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiv katalogløkke"
@@ -1426,6 +1520,16 @@ msgstr ""
 "v:\tMedtag og vis fælles linjer.\n"
 "q:\tAfslut.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: ukendt tilvalg '--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SPRING1:SPRING2  --ignore-initial=SPRING1:SPRING2"
 
index 26c670a..31656c5 100644 (file)
Binary files a/po/de.gmo and b/po/de.gmo differ
index 84b088e..24daf4d 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,22 +1,40 @@
 # German messages for GNU diffutils.
 # This file is distributed under the same license as the diffutils package.
-# Copyright (C) 1996, 2001, 2002 Free Software Foundation, Inc.
+# Copyright (C) 1996, 2001, 2002, 2012, 2013 Free Software Foundation, Inc.
 # Karl Eichwalder <keichwa@gmx.net>, 1996
 # Martin von Löwis <martin@v.loewis.de>, 1997, 2001, 2002
 # Jakob Kramer <jakob.kramer@gmx.de>, 2012, 2013.
+# Benno Schulenberg <bensberg@justemail.net>, 2013.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2013-03-08 22:40+0100\n"
-"Last-Translator: Jakob Kramer <jakob.kramer@gmx.de>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2014-04-20 20:43+0100\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "ungültiges %s%s-Argument »%s«"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "ungültiges %s%s-Argument »%s«"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -26,113 +44,166 @@ msgstr "Programmfehler"
 msgid "stack overflow"
 msgstr "Stacküberlauf"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Unbekannter Systemfehler"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "normale leere Datei"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "normale Datei"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "Verzeichnis"
 
-#: lib/file-type.c:44
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "Symbolische Verknüpfung"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "Nachrichten-Warteschlange"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "Semaphor"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "gemeinsames Speicherobjekt"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "typisiertes Speicherobjekt"
+
+#: lib/file-type.c:66
 msgid "block special file"
 msgstr "Blockorientiertes Gerät"
 
-#: lib/file-type.c:47
+#: lib/file-type.c:69
 msgid "character special file"
 msgstr "Zeichenorientiertes Gerät"
 
-#: lib/file-type.c:50
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
 msgid "fifo"
 msgstr "FIFO"
 
-#: lib/file-type.c:53
-msgid "symbolic link"
-msgstr "symbolische Verknüpfung"
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "Socket"
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "Blockorientiertes Gerät"
 
-#: lib/file-type.c:59
-msgid "message queue"
-msgstr "Nachrichten-Warteschlange"
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "Zeichenorientiertes Gerät"
 
-#: lib/file-type.c:62
-msgid "semaphore"
-msgstr "Semaphor"
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
 
-#: lib/file-type.c:65
-msgid "shared memory object"
-msgstr "gemeinsames Speicherobjekt"
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "seltsame Datei"
 
-#: lib/file-type.c:68
-msgid "typed memory object"
-msgstr "typisiertes Speicherobjekt"
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "Blockorientiertes Gerät"
 
-#: lib/file-type.c:70
+#: 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 "Socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "seltsame Datei"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: Option »%s« ist mehrdeutig, Möglichkeiten:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Option »-W %s« ist mehrdeutig\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: Option »--%s« verlangt kein Argument.\n"
+msgstr "%s: Option »--%s« erlaubt kein Argument.\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: Option »%c%s« erlaubt kein Argument.\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: Option »%s« verlangt ein Argument.\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: Unbekannte Option »--%s«.\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: Unbekannte Option »%c%s«.\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ungültige Option -- »%c«\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: Option verlangt ein Argument -- »%c«\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: Option »-W %s« ist mehrdeutig\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: Option »-W %s« erlaubt kein Argument.\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: Option »-W %s« verlangt ein Argument.\n"
@@ -158,83 +229,84 @@ msgstr "%s: Option »-W %s« verlangt ein Argument.\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "»"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "«"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Erfolg."
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Keine Übereinstimmung."
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Ungültiger regulärer Ausdruck."
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Ungültiges Sortierzeichen."
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Ungültiger Name für Zeichenklasse."
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Extra Backslash."
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Ungültige Rückreferenz."
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Öffnende [ oder [^ ohne schließende."
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Öffnende ( oder \\( ohne schließende."
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Öffnende \\{ ohne schließende."
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Ungültiger Inhalt von \\{\\}."
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Ungültiges Bereichsende."
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Speicher verbraucht."
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
-msgstr "Ungüliger vorhergehender regulärer Ausdruck."
+msgstr "Ungültiger vorhergehender regulärer Ausdruck."
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Vorzeitiges Ende des regulären Ausdrucks."
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
-msgstr "Regulärer Ausdruck zu groß."
+msgstr "Regulärer Ausdruck ist zu groß."
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Schließende ) oder \\) ohne öffnende."
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Kein vorhergehender regulärer Ausdruck."
 
@@ -266,7 +338,7 @@ msgstr "%s konnte mit Modus %s nicht wieder geöffnet werden"
 #: lib/xstrtol-error.c:63
 #, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "ungültiges %s%s Argument »%s«"
+msgstr "ungültiges %s%s-Argument »%s«"
 
 #: lib/xstrtol-error.c:68
 #, c-format
@@ -276,7 +348,7 @@ msgstr "ungültiger Suffix in %s%s Argument »%s«"
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr "%s%s Argument »%s« zu groß"
+msgstr "%s%s Argument »%s« ist zu groß"
 
 #: lib/version-etc.c:74
 #, c-format
@@ -452,20 +524,20 @@ msgstr "Homepage von %s: <http://www.gnu.org/software/%s/>.\n"
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
-"Generelle Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/gethelp/"
-">.\n"
+"Allgemeine Hilfe zur Benutzung von GNU-Software: <http://www.gnu.org/gethelp/"
+">\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Dateien %s und %s sind verschieden.\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binärdateien %s und %s sind verschieden.\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Kein Zeilenumbruch am Dateiende."
 
@@ -479,7 +551,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "»%s --help« gibt Ihnen mehr Informationen."
@@ -487,27 +559,25 @@ msgstr "»%s --help« gibt Ihnen mehr Informationen."
 #: src/cmp.c:137
 #, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "ungültiger --ignore-initial-Wert »%s«"
+msgstr "ungültiger --ignore-initial-Wert »%s«."
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "Die Optionen -l und -s sind inkompatibel."
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "Schreibfehler."
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "Standardausgabe"
 
 #: src/cmp.c:161
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b, --print-bytes          Verschiedene Bytes ausgeben."
+msgstr "-b, --print-bytes          Unterschiedliche Bytes ausgeben."
 
 #: src/cmp.c:162
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
@@ -564,7 +634,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -584,38 +654,38 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Wenn DATEI »-« ist oder fehlt, von der Standardeingabe lesen."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 gleich sind und 2 falls es Probleme gab."
+"sind, 1 falls sie unterschiedlich sind und 2, falls es Probleme gab."
 
 #: src/cmp.c:240
 #, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "ungültiger --bytes-Wert »%s«"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "fehlender Operand nach »%s«"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra Operand »%s«."
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s differieren: Byte %s, Zeile %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr "%s %s differieren: Zeichen %s, Zeile %s ist %3o %s %3o %s\n"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF auf %s.\n"
@@ -645,209 +715,210 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
-msgstr "ungültige Kontextlänge »%s«"
+msgstr "ungültige Kontextlänge »%s«."
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
-msgstr "Seitenumbruch ist auf diesem System nicht unterstützt."
+msgstr "Seitenumbruch wird auf diesem System nicht unterstützt."
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "Zu viele Datei-Label-Optionen."
+msgstr "Zu viele Datei-Label-Optionen wurden angegeben."
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
-msgstr "ungültige Breite »%s«"
+msgstr "ungültige Breite »%s«."
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
-msgstr "Widersprüchliche Breitenoptionen"
+msgstr "widersprüchliche Breitenoptionen"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
-msgstr "ungültige Horizontlänge »%s«"
+msgstr "ungültige Horizontlänge »%s«."
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
-msgstr "ungültige Tabulatorbreite »%s«"
+msgstr "ungültige Tabulatorbreite »%s«."
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
-msgstr "Widersprüchliche Tabulatorbreitenoptionen."
+msgstr "widersprüchliche Tabulatorbreitenoptionen."
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file und --to-file sind beide angegeben."
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  Ein normales Diff ausgeben (Standard)."
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   Nur ausgeben, ob die Dateien verschieden sind."
 
-#: src/diff.c:856
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  Meldung, wenn zwei Dateien gleich sind."
 
-#: src/diff.c:857
+#: src/diff.c:886
 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 "
 "(Vorgabe: 3)."
 
-#: src/diff.c:858
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ZAHL, --unified[=ZAHL]   ZAHL Zeilen des Unified-Kontexts ausgeben "
 "(Vorgabe: 3)."
 
-#: src/diff.c:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      Ein ed-Skript ausgeben."
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     Im RCS-Format ausgeben."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            In zwei Spalten ausgeben."
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-W, --width=ZAHL              Maximal ZAHL Druckspalten pro Zeile ausgeben "
-"(Vorgabe: 130)."
+"-W, --width=ZAHL              Maximal ZAHL Druckspalten pro Zeile ausgeben\n"
+"                              (Vorgabe: 130)."
 
-#: src/diff.c:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             Nur linke Spalte der gemeinsamen Zeilen "
 "ausgeben."
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   Keine gemeinsamen Zeilen ausgeben."
 
-#: src/diff.c:866
+#: src/diff.c:895
 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 C-"
 "Funktion sie ist"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
-"-F, --show-function-line=RE   Die neueste Zeile, die dem Muster RE "
-"entspricht, zeigen"
+"-F, --show-function-line=RE   Die neueste Zeile zeigen, die dem Muster RE "
+"entspricht"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
-"    --label LABEL             LABEL statt Dateinamens benutzen\n"
-"                              (kann wiederholt werden)"
+"    --label LABEL             LABEL statt des Dateinamens benutzen\n"
+"                              (kann wiederholt werden)."
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
-"-t, -expand-tabs              Tabulatoren zu Leerzeichen in der Ausgabe "
+"-t, -expand-tabs              Tabulatoren in der Ausgabe zu Leerzeichen "
 "ausdehnen."
 
-#: src/diff.c:872
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             Einrückungen durch vorangestellte Tabulatoren "
 "erzeugen."
 
-#: src/diff.c:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ZAHL            Tabulatorstopps sind alle ZAHL Spalten "
 "(Vorgabe: 8)."
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                Ausgabe an »pr« zum Seitenumbruch übergeben."
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 Rekursiv alle Unterverzeichnisse vergleichen."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
-"    --no-derefence              Symbolischen Verknüpfungen nicht folgen"
+"    --no-derefence              Symbolischen Verknüpfungen nicht folgen."
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  Fehlende Dateien als leer betrachten."
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   Die ersten fehlenden Dateien als leer "
 "betrachten."
 
-#: src/diff.c:881
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     Unterschiede der Groß/Kleinschreibung von "
 "Dateinamen\n"
 "                                ignorieren."
 
-#: src/diff.c:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
-"-x, --exclude=MUSTER            Dateien, die auf MUSTER passen, ausschließen."
+"-x, --exclude=MUSTER            Dateien ausschließen, die auf MUSTER passen."
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=DATEI        Dateien überspringen, die auf eines der\n"
-"Muster in DATEI passen."
+"                                Muster in DATEI passen."
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=DATEI       Beim Verzeichnisvergleich mit DATEI beginnen."
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -855,7 +926,7 @@ msgstr ""
 "    --from-file=DATEI1          DATEI1 mit allen Operanden vergleichen.\n"
 "                                DATEI1 kann ein Verzeichnis sein."
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -863,82 +934,82 @@ msgstr ""
 "    --to-file=DATEI2            Alle Operanden mit DATEI2 vergleichen.\n"
 "                                DATEI2 kann ein Verzeichnis sein."
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
-"-i, --ignore-case  Unterschiede der Groß/Kleinschreibung im Dateiinhalt\n"
-"                   ignorieren."
+"-i, --ignore-case               Unterschiede der Groß/Kleinschreibung\n"
+"                                im Dateiinhalt ignorieren."
 
-#: src/diff.c:892
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
-"-E, --ignore-tab-expansion     Änderungen aufgrund von Tabausdehnungen "
+"-E, --ignore-tab-expansion      Änderungen aufgrund von Tabausdehnungen "
 "ignorieren."
 
-#: src/diff.c:893
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-Z, --ignore-trailing-space    Freiraum am Zeilenende ignorieren."
+msgstr "-Z, --ignore-trailing-space     Freiraum am Zeilenende ignorieren."
 
-#: src/diff.c:894
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b, --ignore-space-change       Ignoriere Änderungen im Leerraum."
+msgstr "-b, --ignore-space-change       Änderungen im Leerraum ignorieren."
 
-#: src/diff.c:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          Freiraum ignorieren."
 
-#: src/diff.c:896
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        Die Änderungen übergehen, wo alle Zeilen "
 "leer sind."
 
-#: src/diff.c:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      Alle Dateien als Text behandeln."
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
-"    --strip-trailing-cr         Wagenrücklauf (CR) am Zeilenende beim "
-"Einlesen entfernen."
+"    --strip-trailing-cr         Wagenrücklauf (CR) am Zeilenende\n"
+"                                beim Einlesen entfernen."
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    Daten im Binärmodus lesen und schreiben."
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   GTYPE-Eingabe mit GFMT formatieren."
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=LFMT          Alle Eingabe-Zeilen mit LFMT formatieren."
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    LTYPE-Eingabe mit LFMT formatieren."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -946,13 +1017,13 @@ msgstr ""
 "  Diese Formatoptionen stellen haargenaue Kontrolle über die Eingabe\n"
 "    von diff bereit, indem -D/--ifdef verallgemeinert wird."
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE kann »old«, »new« oder »unchanged« sein. GTYPE ist LTYPE oder "
 "»changed«."
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -970,7 +1041,7 @@ msgstr ""
 "  GFMT kann (nur) enthalten:\n"
 "    %<  Zeilen von DATEI1.\n"
 "    %>  Zeilen von DATEI2.\n"
-"    %=  Zeilen, die sowohl zu DATEI1 als auc zu DATEI2 gehören.\n"
+"    %=  Zeilen, die sowohl zu DATEI1 als auch zu DATEI2 gehören.\n"
 "    %[-][BREITE][.[PRÄZ]]{doxX}BUCHST  Ausgabe nach printf-Regeln für "
 "BUCHST.\n"
 "      Folgende BUCHTSTaben gelten für neue Gruppen, Kleinschreibung für "
@@ -982,7 +1053,7 @@ msgstr ""
 "        M  L+1.\n"
 "    %(A=B?T:E)  Falls A gleich B, dann T, sonst E."
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -991,10 +1062,10 @@ msgid ""
 msgstr ""
 "  LFMT kann (nur) enthalten:\n"
 "    %L  Inhalt der Zeile.\n"
-"    %l  Inhalt der Zeile, ohne Newline am Ende.\n"
+"    %l  Inhalt der Zeile, ohne Zeilenumbruch am Ende.\n"
 "    %[-][BREITE][.[PRÄZ]]{doxX}n  Zeilennummer im printf-Stil."
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1008,18 +1079,19 @@ msgstr ""
 "    %c'\\OOO'  das Zeichen mit dem Oktalcode OOO\n"
 "    C    Das Zeichen C (andere Zeichen stellen sich selbst dar)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d, --minimal            Aufwendig nach einem kleineren Satz von Änderungen "
 "suchen."
 
-#: src/diff.c:935
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"    --horizon-lines=ZAHL Behalte ZAHL Zeilen mit gemeinsamem Prä- und Suffix."
+"    --horizon-lines=ZAHL ZAHL Zeilen mit gemeinsamem Prä- und Suffix "
+"behalten."
 
-#: src/diff.c:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
@@ -1027,80 +1099,106 @@ msgstr ""
 "kleine\n"
 "                         Änderungen vermutet."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  Ein normales Diff ausgeben (Standard)."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               Diese Hilfe anzeigen und beenden."
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, -version             Versionsinformation ausgeben und beenden."
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Wenn DATEI »-« ist, von der Standardeingabe lesen."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Aufruf: %s [OPTION]... DATEIEN\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Dateien Zeile für Zeile vergleichen."
+msgstr "DATEIEN Zeile für Zeile vergleichen."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "Widersprüchlicher %s Optionswert »%s«."
+msgstr "Widersprüchlicher %s-Optionswert »%s«."
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
-msgstr "Widersprüchliche Optionenen für den Ausgabestil."
+msgstr "Widersprüchliche Optionen für den Ausgabestil."
+
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ungültige Breite »%s«."
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Nur in %s: %s.\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "»-« kann nicht mit Verzeichnis verglichen werden."
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "Option -D nicht unterstützt bei Verzeichnissen"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Gemeinsame Unterverzeichnisse: %s und %s.\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
+msgstr "Datei %s ist ein %s, während Datei %s ein %s ist.\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symbolische Verknüpfungen %s und %s sind verschieden.\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Dateien %s und %s sind identisch.\n"
@@ -1119,7 +1217,7 @@ msgstr "Inkompatible Optionen."
 msgid "'-' specified for more than one input file"
 msgstr "»-« für mehr als eine Eingabedatei angegeben."
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "Lesefehler."
@@ -1200,7 +1298,7 @@ msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
-"-L, --label=LABEL           LABEL statt Dateinamens benutzen\n"
+"-L, --label=LABEL           LABEL statt des Dateinamens benutzen\n"
 "                            (kann bis zu dreimal wiederholt werden)"
 
 #: src/diff3.c:448
@@ -1214,7 +1312,7 @@ msgstr "-v, --version               Versionsinformation ausgeben und beenden."
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Benutzung: %s [OPTION]... MEINEDATEI ALTEDATEI DEINEDATEI\n"
+msgstr "Aufruf: %s [OPTION]... MEINEDATEI ALTEDATEI DEINEDATEI\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
@@ -1235,7 +1333,7 @@ msgid ""
 msgstr ""
 "\n"
 "Das Standardausgabeformat ist eine einigermaßen menschenlesbare\n"
-"Repräsentierung der Änderungen.\n"
+"Darstellung der Änderungen.\n"
 "\n"
 "Die Optionen -e, -E, -x und -X (und deren entsprechende lange Versionen)\n"
 "erzeugen ein ed-Skript als Ausgabe statt des Standards.\n"
@@ -1267,33 +1365,33 @@ msgstr "Interner Fehler: Ungültiger diff-Typ in process_diff."
 msgid "invalid diff format; invalid change separator"
 msgstr "Ungültiges Diff-Format; ungültiger Änderungstrenner."
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "Ungültiges Diff-Format; felende letzte Zeile."
+msgstr "Ungültiges Diff-Format; fehlende letzte Zeile."
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "Unterprogramm »%s« konnte nicht aufgerufen werden."
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "Ungültiges Diff-Format; inkorrektes Zeichen in führender Zeile"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "Interner Fehler: Ungültiger diff-Typ an Ausgabe übergeben."
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "Eingabedatei schrumpfte."
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "Die Dateinamen »%s« und »%s« können nicht verglichen werden."
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: Rekursive Verzeichnisschleife"
@@ -1329,7 +1427,7 @@ msgstr "-Z, --ignore-trailing-space  Freiraum am Zeilenende ignorieren."
 #: src/sdiff.c:178
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b, --ignore-space-change    Ignoriere Änderungen im Leerraum."
+msgstr "-b, --ignore-space-change    Änderungen im Leerraum ignorieren."
 
 #: src/sdiff.c:179
 msgid "-W, --ignore-all-space       ignore all white space"
@@ -1356,13 +1454,13 @@ msgstr ""
 
 #: src/sdiff.c:183
 msgid "-a, --text                   treat all files as text"
-msgstr "-a, --text                   Betrachte alle Dateien als Text."
+msgstr "-a, --text                   Alle Dateien als Text betrachten."
 
 #: src/sdiff.c:185
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w, --width=ZAHL             Maximal ZAHL Druckspalten pro Zeile (Vorgabe: "
+"-w, --width=ZAHL             Maximale ZAHL Druckspalten pro Zeile (Vorgabe: "
 "130)."
 
 #: src/sdiff.c:186
@@ -1379,7 +1477,7 @@ msgstr "-s,  --suppress-common-lines  Keine gemeinsamen Zeilen ausgeben."
 #: src/sdiff.c:189
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
-"-t, --expand-tabs            Tabulatoren zu Leerzeichen in der Ausgabe "
+"-t, --expand-tabs            Tabulatoren in der Ausgabe zu Leerzeichen "
 "ausdehnen."
 
 #: src/sdiff.c:190
@@ -1421,21 +1519,19 @@ msgstr "-v, -version                 Versionsinformation ausgeben und beenden."
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Aufruf: %s [OPTION]... DATEI1 DATEI2\n"
 
-# XXX Was ist das?
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr ""
-"Nebeneinanderstehendes Zusammenbringen der Unterschiede zwischen DATEI1 und "
-"DATEI2."
+"Nebeneinanderstehendes Zusammenbringen der Unterschiede zwischen\n"
+"DATEI1 und DATEI2."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "Kann nicht die Standardeingabe interaktiv mischen."
+msgstr "Die Standardeingabe kann nicht interaktiv gemischt werden."
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
-msgstr "Beide zu vergleichenden Dateien sind Verzeichnisse."
+msgstr "Beide zu vergleichende Dateien sind Verzeichnisse."
 
 #: src/sdiff.c:818
 msgid ""
@@ -1458,10 +1554,20 @@ msgstr ""
 "e:\tBeide Versionen verwerfen und dann eine neue Version editieren.\n"
 "l:\tLinke Version benutzen.\n"
 "r:\tRechte Version benutzen.\n"
-"s:\tSchweigend gemeinsame Zeilen übernehmen.\n"
-"v:\tLauthals gemeinsame Zeilen übernehmen.\n"
+"s:\tStillschweigend gemeinsame Zeilen übernehmen.\n"
+"v:\tAusführlich gemeinsame Zeilen übernehmen.\n"
 "q:\tBeenden.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: Unbekannte Option »--%s«.\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid ""
 #~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
 #~ "You may redistribute copies of this program\n"
index 2535f9e..e8b7db0 100644 (file)
@@ -1,14 +1,14 @@
 # SOME DESCRIPTIVE TITLE.
 # Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
+# This file is distributed under the same license as the GNU diffutils package.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 3.3\n"
+"Project-Id-Version: GNU diffutils 3.4\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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,6 +17,20 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+msgid "Valid arguments are:"
+msgstr ""
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr ""
@@ -25,113 +39,162 @@ msgstr ""
 msgid "stack overflow"
 msgstr ""
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr ""
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr ""
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr ""
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr ""
 
-#: lib/file-type.c:44
+#: 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:47
+#: lib/file-type.c:69
 msgid "character special file"
 msgstr ""
 
-#: lib/file-type.c:50
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
 msgid "fifo"
 msgstr ""
 
-#: lib/file-type.c:53
-msgid "symbolic link"
+#: lib/file-type.c:78
+msgid "door"
 msgstr ""
 
-#: lib/file-type.c:56
-msgid "socket"
+#: lib/file-type.c:81
+msgid "multiplexed block special file"
 msgstr ""
 
-#: lib/file-type.c:59
-msgid "message queue"
+#: lib/file-type.c:84
+msgid "multiplexed character special file"
 msgstr ""
 
-#: lib/file-type.c:62
-msgid "semaphore"
+#: lib/file-type.c:87
+msgid "multiplexed file"
 msgstr ""
 
-#: lib/file-type.c:65
-msgid "shared memory object"
+#: lib/file-type.c:90
+msgid "named file"
 msgstr ""
 
-#: lib/file-type.c:68
-msgid "typed memory object"
+#: 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:70
+#: 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:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr ""
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr ""
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr ""
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr ""
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr ""
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr ""
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr ""
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr ""
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr ""
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr ""
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr ""
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr ""
@@ -157,83 +220,83 @@ msgstr ""
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr ""
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr ""
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr ""
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr ""
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr ""
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr ""
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr ""
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr ""
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr ""
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr ""
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr ""
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr ""
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr ""
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr ""
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr ""
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr ""
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ""
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr ""
 
@@ -425,17 +488,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr ""
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr ""
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr ""
 
@@ -449,7 +512,7 @@ msgstr ""
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr ""
@@ -464,14 +527,12 @@ msgstr ""
 msgid "options -l and -s are incompatible"
 msgstr ""
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr ""
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr ""
 
@@ -525,7 +586,7 @@ msgid ""
 "at the beginning of each file (zero by default)."
 msgstr ""
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -541,7 +602,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr ""
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 
@@ -550,27 +611,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr ""
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr ""
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr ""
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr ""
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr ""
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr ""
@@ -600,254 +661,254 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr ""
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr ""
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr ""
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr ""
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr ""
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr ""
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr ""
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr ""
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr ""
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 
-#: src/diff.c:856
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 
-#: src/diff.c:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr ""
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 
-#: src/diff.c:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 
-#: src/diff.c:872
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 
-#: src/diff.c:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 
-#: src/diff.c:881
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 
-#: src/diff.c:882
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 
-#: src/diff.c:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 
-#: src/diff.c:892
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 
-#: src/diff.c:893
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 
-#: src/diff.c:894
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 
-#: src/diff.c:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr ""
 
-#: src/diff.c:896
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 
-#: src/diff.c:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 
-#: src/diff.c:905
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -863,7 +924,7 @@ msgid ""
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -871,7 +932,7 @@ msgid ""
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
 msgstr ""
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -880,89 +941,113 @@ msgid ""
 "    C    the character C (other characters represent themselves)"
 msgstr ""
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 
-#: src/diff.c:935
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 
-#: src/diff.c:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+msgid "                           or 'auto' (the default)"
+msgstr ""
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr ""
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 
-#: src/diff.c:942
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr ""
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr ""
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr ""
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr ""
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, c-format
+msgid "invalid color '%s'"
+msgstr ""
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr ""
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr ""
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr ""
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr ""
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr ""
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr ""
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr ""
@@ -981,7 +1066,7 @@ msgstr ""
 msgid "'-' specified for more than one input file"
 msgstr ""
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr ""
@@ -1099,33 +1184,33 @@ msgstr ""
 msgid "invalid diff format; invalid change separator"
 msgstr ""
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr ""
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr ""
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr ""
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr ""
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr ""
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr ""
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1252,3 +1337,13 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
+
+#: src/util.c:665
+#, c-format
+msgid "unrecognized prefix: %s"
+msgstr ""
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 36be0ad..6ca71ab 100644 (file)
Binary files a/po/el.gmo and b/po/el.gmo differ
index abc2119..38a0870 100644 (file)
--- a/po/el.po
+++ b/po/el.po
@@ -1,23 +1,39 @@
-# translation of diffutils-2.8.7.po to Greek
+# translation of diffutils to Greek
 # Copyright (C) 2004 Free Software Foundation, Inc.
-# This file is distributed under the same license as the diffutils-2.8.7 package.
-# Lefteris Dimitroulakis <edimitro@tee.gr>, 2004.
+# 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.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils-2.8.7\n"
+"Project-Id-Version: diffutils-3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-12-28 15:50+0000\n"
-"Last-Translator: Lefteris Dimitroulakis <edimitro@tee.gr>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2014-11-28 23:51+0200\n"
+"Last-Translator: Lefteris Dimitroulakis <ledimitro@gmail.com>\n"
+"Language-Team: Greek <team@lists.gnome.gr>\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
+"X-Generator: Lokalize 1.5\n"
 "Plural-Forms:  nplurals=2; plural=(n != 1);\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "μη έγκυρο %s%s όρισμα «%s»"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "μη έγκυρο %s%s όρισμα «%s»"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "σφάλμα προγράμματος"
@@ -26,116 +42,169 @@ msgstr "σφάλμα προγράμματος"
 msgid "stack overflow"
 msgstr "υπερχείλιση στοίβας"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Άγνωστο σφάλμα συστήματος"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "τυπικό κενό αρχείο"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "τυπικό αρχείο"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "κατάλογος"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "ειδικό αρχείο μπλοκ"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "ειδικό αρχείο χαρακτήρων"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "συμβολικός σύνδεσμος"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "ουρά μηνύματος"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "σηματοφορέας"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "αντικείμενο κοινόχρηστης μνήμης"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "typed memory object"
 
-#: lib/file-type.c:70
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "ειδικό αρχείο μπλοκ"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "ειδικό αρχείο χαρακτήρων"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "αλλόκοτο αρχείο"
+
+#: lib/file-type.c:93
+#, fuzzy
+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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "αλλόκοτο αρχείο"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: η επιλογή «%s» είναι ασαφής\n"
+msgstr "%s: η επιλογή «%s» είναι ασαφής·επιλογές:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: η επιλογή «-W %s» είναι ασαφής\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή «--%s» δεν επιτρέπει όρισμα\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή «%c%s» δεν επιτρέπει όρισμα\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: η επιλογή «%s» απαιτεί όρισμα\n"
+msgstr "%s: η επιλογή «--%s» απαιτεί όρισμα\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: η επιλογή «--%s» δεν αναγνωρίζεται\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: η επιλογή «%c%s» δεν αναγνωρίζεται\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: η επιλογή -- %c είναι άκυρη\n"
+msgstr "%s: η επιλογή -- «%c»  δεν είναι έγκυρη\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n"
+msgstr "%s: η επιλογή απαιτεί όρισμα -- «%c»\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: η επιλογή «-W %s» είναι ασαφής\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: η επιλογή «-W %s» δεν επιτρέπει όρισμα\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: η επιλογή «%s» απαιτεί όρισμα\n"
+msgstr "%s: η επιλογή «-W %s» απαιτεί όρισμα\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -158,83 +227,84 @@ msgstr "%s: η επιλογή «%s» απαιτεί όρισμα\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr "«"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr "»"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Επιτυχία"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Δεν υπάρχει ταίριασμα"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
-msgstr "Î\86κυρη κανονική έκφραση"
+msgstr "Î\9cη Î­Î³κυρη κανονική έκφραση"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
-msgstr "Î\86κυρος χαρακτήρας διαταξινόμησης"
+msgstr "Î\9cη Î­Î³κυρος χαρακτήρας διαταξινόμησης"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
-msgstr "Î\86κυρο όνομα κλάσεως χαρακτήρων"
+msgstr "Î\9cη Î­Î³κυρο όνομα κλάσεως χαρακτήρων"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Αντιπλαγία στο τέλος"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Άκυρη πίσω παραπομπή"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Δε βρέθηκε [ ή [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Δε βρέθηκε ( ή \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Δε βρέθηκε \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Το περιεχόμενο του \\{\\} είναι άκυρο"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Άκυρο πέρας διαστήματος"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Η μνήμη εξαντλήθηκε"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Η προηγούμενη κανονική έκφραση είναι άκυρη"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Πρόωρο τέλος κανονικής έκφρασης"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Πολύ μεγάλη κανονική έκφραση"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Δε βρέθηκε ) ή \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Δεν προηγήθηκε κανονική έκφραση"
 
@@ -244,57 +314,56 @@ msgstr "η μνήμη εξαντλήθηκε"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "stdin"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "stdout"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "stderr"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Î\86γνÏ\89Ï\83Ï\84ο Ï\83Ï\86άλμα Ï\83Ï\85Ï\83Ï\84ήμαÏ\84οÏ\82"
+msgstr "άγνÏ\89Ï\83Ï\84ο Ï\81εÏ\8dμα"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "αποτυχία ξανανοίγματος %s σε κατάσταση %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "άκÏ\85Ï\81η Ï\84ιμή Â«%s» Î³Î¹Î± Ï\84ην ÎµÏ\80ιλογή --bytes "
+msgstr "μη Î­Î³ÎºÏ\85Ï\81ο %s%s Ï\8cÏ\81ιÏ\83μα Â«%s»"
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "μη έγκυρη κατάληξη «%s» στο όρισμα %s%s"
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "%s%s όρισμα «%s» πολύ μεγάλο"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Packaged by %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Packaged by %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:84
 msgid "(C)"
-msgstr ""
+msgstr "(C)"
 
 #: lib/version-etc.c:86
 msgid ""
@@ -305,6 +374,12 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Άδεια GPLv3+: GNU GPL έκδοση 3 ή νεότερη <http://gnu.org/licenses/gpl."
+"html>.\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:102
@@ -424,37 +499,40 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"Report bugs to: %s\n"
 
 #: lib/version-etc.c:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Report %s bugs to: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s home page: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s home page: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
+"Γενική βοήθεια στη χρήση λογισμικού GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Τα αρχεία %s και %s διαφέρουν\n"
 
-#: src/analyze.c:462
-#, fuzzy, c-format
+#: src/analyze.c:455
+#, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Τα αρχεία %s και %s διαφέρουν\n"
+msgstr "Τα Î´Ï\85αδικά Î±Ï\81Ï\87εία %s ÎºÎ±Î¹ %s Î´Î¹Î±Ï\86έÏ\81οÏ\85ν\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Δεν υπάρχει χαρακτήρας νέας γραμμής στο τέλος του αρχείου"
 
@@ -466,78 +544,71 @@ msgstr "Torbjorn Granlund"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Δοκιμάστε `%s --help' για περισσότερες πληροφορίες."
+msgstr "Δοκιμάστε «%s --help» για περισσότερες πληροφορίες."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "άκυρη τιμή --ignore-initial `%s'"
+msgstr "άκυρη τιμή --ignore-initial «%s»"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "οι επιλογές -l και -s είναι ασύμβατες"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "η εγγραφή απέτυχε"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "κανονική έξοδος"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Εμφανίζει ψηφιολέξεις που διαφέρουν."
+msgstr "-b,  --print-bytes  Εμφανίζει bytes που διαφέρουν."
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
-"-i SKIP  --ignore-initial=SKIP  Παράβλεψη των πρώτων SKIP ψηφιολέξεων της "
-"εισόδου."
+"-i, --ignore-initial=SKIP  Παράβλεψη των πρώτων SKIP bytes και των δύο "
+"εισόδων"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"Παράβλεψη των πρώτων SKIP1 ψηφιολέξεων του ΑΡΧΕΙΟ1 και των πρώτων SKIP2 "
-"ψηφιολέξεων του ΑΡΧΕΙΟ2."
+"-i, --ignore-initial=SKIP1:SKIP2  παράβλεψη των πρώτων SKIP1 bytes του "
+"αρχείου FILE1 και\n"
+"      των πρώτων SKIP2 bytes του αρχείου FILE2"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr "-l  --verbose  Έξοδος αριθμού και τιμής όλων των bytes που διαφέρουν."
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n ΟΡΙΟ  --bytes=ΟΡΙΟ  Σύγκριση αριθμού bytes ανά ΟΡΙΟ."
+msgstr "-n,  --bytes=ΟΡΙΟ  Σύγκριση το πολύ ΟΡΙΟ bytes."
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      απάλειψη κανονικής εξόδου"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Έξοδος ονόματος κι έκδοσης."
+msgstr "-v,  --version  εμφάνιση πληροφοριών έκδοσης κι έξοδος"
 
 #: src/cmp.c:178
 #, c-format
@@ -549,16 +620,20 @@ msgid "Compare two files byte by byte."
 msgstr "Σύγκριση δύο αρχείων byte προς byte."
 
 #: src/cmp.c:182
-#, 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 "SKIP1 και  SKIP2 είναι ο αριθμός των byte προς παράλειψη ανά αρχείο."
+msgstr ""
+"Οι προαιρετικές παράμετροι SKIP1 και SKIP2 καθορίζουν τον αριθμό των bytes "
+"προς παράβλεψη\n"
+"στην αρχή κάθε αρχείου (η προεπιλογή είναι μηδέν)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
+"Υποχρεωτικά ορίσματα στις μακρές επιλογές είναι υποχρεωτικά και στις κοντές "
+"επιλογές επίσης.\n"
 
 #: src/cmp.c:191
 msgid ""
@@ -572,42 +647,41 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824, κτλ γιά T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Αν ένα ΑΡΧΕΙΟ είναι `-' ή απών, τότε ανάγνωση από την κανονική είσοδο."
+msgstr "Αν ένα ΑΡΧΕΙΟ είναι «-» ή απών, τότε ανάγνωση από την κανονική είσοδο."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "άκυρη τιμή «%s» για την επιλογή --bytes "
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
 msgstr "απών τελεστέος μετά από «%s»"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
 msgstr "συμπληρωματικός τελεστέος «%s»"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s διαφέρουν: byte %s, γραμμή %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: Τέλος-Αρχείου (EOF) σε %s\n"
@@ -615,351 +689,319 @@ msgstr "cmp: Τέλος-Αρχείου (EOF) σε %s\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "άκυρο μήκος συμφραζομένων «%s»"
+msgstr "μη Î­Î³κυρο μήκος συμφραζομένων «%s»"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "Η αρίθμιση σελίδων δεν υποστηρίζεται σ' αυτόν τον υπολογιστή"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "πάρα πολλές επιλογές ετικέτας αρχείου"
+msgstr "πάρα πολλές επιλογές ετικέττας αρχείου"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
 msgstr "άκυρο πλάτος «%s»"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "αντικρουόμενες επιλογές πλάτους"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
 msgstr "άκυρο μήκος ορίζοντα «%s»"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
 msgstr "άκυρο μήκος στηλοθέτησης `%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "αντικρουόμενες επιλογές μήκους στηλοθέτησης"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file και --to-file έχουν οριστεί μαζί"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Δημιουργία ενός `diff' σε κανονική μορφή."
+msgstr "  --normal  Δημιουργία ενός κανονικού `diff' (προεπιλογή)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Î\88ξοδοÏ\82 Î¼Ï\8cνο Ï\8cÏ\84αν Ï\84α Î±Ï\81Ï\87εία Î´Î¹Î±Ï\86έÏ\81οÏ\85ν."
+msgstr "-q  --brief  Î±Ï\80οÏ\84έλεÏ\83μα Ï\83Ï\84ην Î­Î¾Î¿Î´Î¿ Î¼Ï\8cνο Î±Î½ Ï\84' Î±Ï\81Ï\87εία Î´Î¹Î±Ï\86έÏ\81οÏ\85ν"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w ΑΡ  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)."
+"-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Δημιουργία προγράμματος εντολών για τον `ed'."
+msgstr "-e, --ed   εμφανίζει ένα ed script"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Δημιουργία αρχείου `diff' σε μορφή RCS."
+msgstr "-n  --rcs  Δημιουργία αρχείου «diff» σε μορφή RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            έξοδος σε δυο στήλες"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w ΑΡ  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)."
+"-W, --width=NUM               output at most NUM (default 130) print columns"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
-"-l  --left-column  Εμφάνιση στην αριστερή στήλη των ταυτόσημων γραμμών."
+"--left-column  Εμφάνιση μόνο της αριστερής στήλης των ταυτόσημων γραμμών."
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  Οι ταυτόσημες γραμμές δεν εμφανίζονται."
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
+"-p, --show-c-function    εμφάνιση σε ποιά συνάρτηση C βρίσκεται κάθε αλλαγή"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
+"-F, --show-function-line=RE   εμφάνιση του πιο πρόσφατου ταιριάσματος "
+"γραμμής RE"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"-L, --label=LABEL           χρήση LABEL αντί ονόματος αρχείου\n"
+"                                (μπορεί να επαναληφθεί)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο."
+msgstr "-t,  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο."
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab  Στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην αρχή."
+"-T,  --initial-tab  Στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην "
+"αρχή."
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=ΑΡ  Ο αριθμός διαστημάτων του στηλοθέτη είναι ΑΡ (προεπιλογή 8)."
+"  --tabsize=ΑΡ  Ο αριθμός διαστημάτων του στηλοθέτη είναι ΑΡ (προεπιλογή 8)"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
+" --suppress-blank-empty  απάλειψη διαστήματος ή στ/θέτη πριν από κενές "
+"γραμμές στην έξοδο"
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
-"-l  --paginate  Έξοδος δια μέσου του `pr' ώστε να αριθμιθούν οι σελίδες."
+" -l,  --paginate  Έξοδος δια μέσου του «pr» ώστε να αριθμιθούν οι σελίδες"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Αναδρομική σύγκριση όσων υποκαταλόγων βρεθούν."
+msgstr "-r,  --recursive  Αναδρομική σύγκριση όσων υποκαταλόγων βρεθούν"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr " --no-dereference            μην ακολουθείς συμβολικούς συνδέσμους"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Θεωρεί τα απόντα αρχεία ως κενά."
+msgstr "-N,  --new-file  Θεωρεί τα απόντα αρχεία ως κενά"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "--unidirectional-new-file  Θεωρεί τα απόντα πρώτα αρχεία ως κενά."
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "--ignore-file-name-case  Αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων\n"
-"                                      κατά τη σύγκριση ονομάτων αρχείων."
+"                                     κατά τη σύγκριση ονομάτων αρχείων."
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Λαμβάνει υπ' όψιν τις διαφορές λόγω\n"
 "                      πεζών-κεφαλαίων κατά τη σύγκριση ονομάτων αρχείων."
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x PAT  --exclude=PAT  Εξαίρεση αρχείων με όνομα που ταιριάζει με PAT."
+msgstr "-x,  --exclude=PAT  Εξαίρεση αρχείων με όνομα που ταιριάζει με PAT."
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X ΑΡΧΕΙΟ  --exclude-from=ΑΡΧΕΙΟ    Εξαίρεση αρχείων με όνομα που ταιράζει\n"
-"                                  με τα ονόματα που βρίσκονται στο ΑΡΧΕΙΟ."
+"-X,  --exclude-from=ΑΡΧΕΙΟ    Εξαίρεση αρχείων με όνομα που ταιράζει\n"
+"                                  με τα ονόματα που βρίσκονται στο ΑΡΧΕΙΟ"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S ΑΡΧΕΙΟ  --starting-file=ΑΡΧΕΙΟ  Εκκίνηση σύγκρισης καταλόγων από το "
-"ΑΡΧΕΙΟ."
+"-S,  --starting-file=ΑΡΧΕΙΟ  Εκκίνηση σύγκρισης καταλόγων από το ΑΡΧΕΙΟ"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=ΑΡΧΕΙΟ1\n"
-"                                Σύγκριση ΑΡΧΕΙΟ1 με όλους τους τελεστέους.\n"
-"                                        ΑΡΧΕΙΟ1 μπορεί να είναι κατάλογος."
+"--from-file=ΑΡΧΕΙΟ1      Σύγκριση ΑΡΧΕΙΟ1 με όλους τους τελεστέους·\n"
+"                                        ΑΡΧΕΙΟ1 μπορεί να είναι κατάλογος"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=ΑΡΧΕΙΟ2\n"
-"                                Σύγκριση όλων των τελεστέων στο ΑΡΧΕΙΟ2.\n"
-"                                        ΑΡΧΕΙΟ2 μπορεί να είναι κατάλογος."
+"--to-file=ΑΡΧΕΙΟ2   Σύγκριση όλων των τελεστέων στο ΑΡΧΕΙΟ2·\n"
+"                                        ΑΡΧΕΙΟ2 μπορεί να είναι κατάλογος"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
-"-i  --ignore-case  Αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων\n"
-"Ï\83Ï\84α Ï\80εÏ\81ιεÏ\87Ï\8cμενα Î±Ï\81Ï\87είÏ\89ν."
+"-i,  --ignore-case  Αγνοεί τις διαφορές λόγω πεζών-κεφαλαίων στα περιεχόμενα "
+"Ï\84Ï\89ν Î±Ï\81Ï\87είÏ\89ν"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση."
+"-E,  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr ""
+"-Z, --ignore-trailing-space     αγνοεί λευκά διαστήματα στο τέλος γραμμής"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
-"-b  --ignore-space-change  Αγνοεί αλλαγές οφειλόμενες στα λευκά διαστήματα."
+"-b,  --ignore-space-change  Αγνοεί αλλαγές οφειλόμενες στον αριθμό λευκών "
+"διαστημάτων."
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr "-w,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines  Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές."
+"-B,  --ignore-blank-lines    Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Αγνοεί αλλαγές που οι γραμμές τους "
+"-I,  --ignore-matching-lines=RE  Αγνοεί αλλαγές που οι γραμμές τους "
 "ταιριάζουν με RE."
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
+msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο."
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Ανάγνωση και εγγραφή πληροφορίας σε δυαδική μορφή."
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D ΟΝΟΜΑ  --ifdef=ΟΝΟΜΑ  Έξοδος συγχωνευμένου αρχείου\n"
-"με τις διαφορές `#ifdef NAME'."
+"-D, --ifdef=ΟΝΟΜΑ  Έξοδος συγχωνευμένου αρχείου με τις διαφορές «#ifdef "
+"NAME»."
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=GFMT  Αντίστοιχο, αλλά μορφοποίηση ομάδων\n"
-"                                        εισόδου GTYPE με GFMT."
+msgstr "--GTYPE-group-format=GFMT  μορφοποίηση ομάδων εισόδου GTYPE με GFMT."
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
-"--line-format=LFMT  Αντίστοιχο, αλλά μορφοποίηση\n"
-"όλων των γραμμών εισόδου με LFMT."
+"--line-format=LFMT           μορφοποίηση όλων των γραμμών εισόδου με LFMT"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=LFMT  Αντίστοιχο, αλλά μορφοποίηση \n"
-"γραμμών εισόδου LTYPE με LFMT."
+msgstr "--LTYPE-line-format=LFMT  μορφοποίηση γραμμών εισόδου LTYPE με LFMT."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"Αυτές οι επιλογές μορφής παρέχουν λεπτομερή έλεγχο πάνω στην έξοδο\n"
+"    του diff, γενικεύοντας -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 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:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -985,10 +1027,10 @@ msgstr ""
 "        L  αριθμός τελευταίας γραμμής\n"
 "        N  αριθμός γραμμών = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"      %(A=B?T:E)  αν A ίσον B τότε T αλλιώς E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -999,10 +1041,9 @@ msgstr ""
 "    %L              για το περιεχόμενο της γραμμής\n"
 "    %l              για το περιεχόμενο της γραμμής χωρίς το τέλος γραμμής\n"
 "    %[-][ΠΛΑΤΟΣ][.[PREC]]{doxX}n  την προδιαγραφή του αριθμού γραμμής\n"
-"                                  ÎµÎ¹Ï\83Ï\8cδοÏ\85 Î±Î½Î¬Î»Î¿Î³Î± Î¼Îµ τη μορφή της printf()"
+"                                  ÎµÎ¹Ï\83Ï\8cδοÏ\85 ÎºÎ±Ï\84ά τη μορφή της printf()"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1010,111 +1051,127 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-"GFMT ή LFMT μπορούν να περιέχουν:\n"
+"  GFMT και LFMT μπορεί να περιέχουν:\n"
 "    %%  %\n"
-"    %c'C'  τον ίδιο το χαρακτήρα C\n"
-"    %c'\\OOO'  το χαρακτήρα με οκταδικό κωδικό OOO"
+"    %c'C'  το μοναδικό χαρακτήρα C\n"
+"    %c'\\OOO'  το χαρακτήρα με οκταδικό κωδικό OOO\n"
+"    C    το χαρακτήρα C (οι άλλοι χαρακτήρες αναπαριστούν τον εαυτόν τους)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr ""
-"-d  --minimal  Αν είναι δυνατόν εμφάνιση του μικρότερου συνόλου διαφορών."
+msgstr "-d  --minimal  προσπάθεια εύρεσης μικρότερου συνόλου διαφορών."
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "--horizon-lines=ΑΡ  Διατηρεί ΑΡ γραμμές με ταυτόσημα προθέματα κι επιθέματα."
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες "
-"μικροαλλαγές."
+"--speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες μικροαλλαγές."
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Έξοδος ονόματος κι έκδοσης."
+msgid "                           or 'auto' (the default)"
+msgstr "  --normal  Δημιουργία ενός κανονικού `diff' (προεπιλογή)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
-"ΑΡΧΕΙΑ είναι `ΑΡΧΕΙΟ1 ΑΡΧΕΙΟ2' ή `ΚΑΤ1 ΚΑΤ2' ή `ΚΑΤ ΑΡΧΕΙΟ...' ή `ΑΡΧΕΙΟ... "
-"ΚΑΤ'."
 
-#: src/diff.c:942
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v  --version  Εμφάνιση πληροφοριών έκδοσης κι έξοδος"
+
+#: src/diff.c:974
 #, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"ΑΡΧΕΙΑ είναι «ΑΡΧΕΙΟ1 ΑΡΧΕΙΟ2» ή «ΚΑΤ1 ΚΑΤ2» ή «ΚΑΤ ΑΡΧΕΙΟ...» ή «ΑΡΧΕΙΟ..."
+"ΚΑΤ»."
+
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
-"Αν το --from-file ή --to-file είναι δεδομένο, τότε δεν υπάρχει περιορισμός "
-"στα ΑΡΧΕΙΑ."
+"Αν δίδεται το --from-file ή το --to-file, τότε δεν υπάρχει περιορισμός στα "
+"ΑΡΧΕΙΑ."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Αν ένα ΑΡΧΕΙΟ είναι `-', τότε ανάγνωση από την τυπική είσοδο."
+msgstr "Αν ένα ΑΡΧΕΙΟ είναι «-», τότε ανάγνωση από την τυπική είσοδο."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΑ\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Σύγκριση αρχείων γραμμή προς γραμμή."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "η επιλογή %s είναι αντικρουόμενη με την τιμή «%s»"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "αντικρουόμενες επιλογές για τη μορφή εξόδου"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "άκυρο πλάτος «%s»"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Μόνο στο %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "Αδύνατη η σύγκριση του `-' με ένα κατάλογο"
+msgstr "Αδύνατη η σύγκριση του «-» με ένα κατάλογο"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
-msgstr "Η επιλογή -D δεν υποστηρίζεται για καταλόγους."
+msgstr "Η επιλογή -D δεν υποστηρίζεται για καταλόγους"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Οι υποκατάλογοι %s και %s είναι ταυτόσημοι\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Το αρχείο %s είναι %s ενώ το αρχείο %s είναι %s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Τα Î±Ï\81Ï\87εία %s και %s διαφέρουν\n"
+msgstr "Î\9fι Ï\83Ï\85μβολικοί Ï\83Ï\8dνδεÏ\83μοι %s και %s διαφέρουν\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Τα αρχεία %s καί %s είναι πανομοιότυπα\n"
@@ -1122,7 +1179,7 @@ msgstr "Τα αρχεία %s καί %s είναι πανομοιότυπα\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Randy Smith"
 
 #: src/diff3.c:313
 #, c-format
@@ -1130,79 +1187,76 @@ msgid "incompatible options"
 msgstr "ασύμβατες επιλογές"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "`-' ορίστηκε για περισσότερα από ένα αρχεία εισόδου"
+msgstr "«-» ορίστηκε για περισσότερα από ένα αρχεία εισόδου"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "αποτυχία ανάγνωσης"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Î\88ξοδοÏ\82 Ï\8cλÏ\89ν Ï\84Ï\89ν Î±Î»Î»Î±Î³ών σε αγκύλες."
+msgstr "-A  --show-all  Î\88ξοδοÏ\82 Ï\8cλÏ\89ν Ï\84Ï\89ν Î´Î¹Î±Ï\86οÏ\81ών σε αγκύλες."
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Έξοδος ασυγχώνευτων αλλαγών από OLDFILE σε YOURFILE στο MYFILE."
+"-e, --ed  έξοδος ενός ed script που περιλαμβάνει τις αλλαγές από OLDFILE σε "
+"YOURFILE στο MYFILE"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E  --show-overlap  Έξοδος ασυγχώνευτων αλλαγών σε αγκύλες."
+msgstr "-E, --show-overlap          όπως -e, αλλά οι διαφορές σε αγκύλες"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Έξοδος ασυγχώνευτων μη επικαλυπτόμενων αλλαγών."
+msgstr ""
+"-3, --easy-only    όπως -e, αλλά περιλαμβάνει μόνο τις μη "
+"αλληλοεπικαλυπτόμενες αλλαγές"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Έξοδος μόνο των αλλαγών που επικαλύπτονται."
+msgstr ""
+"-x, --overlap-only    όπως -e, αλλά περιλαμβάνει μόνο τις αλληλοκαλυπτόμενες "
+"αλλαγές"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          like -x, but bracket conflicts"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Προσάρτηση των διαταγών `w' και `q' στα σενάρια του `ed'."
+msgstr "-i         προσάρτηση των εντολών «w» και «q» στα σενάρια του «ed»"
 
 #: src/diff3.c:438
 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:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
+msgstr "-a,  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο."
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab  Στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην αρχή."
+"-T,  --initial-tab  στοίχιση των στηλοθετών με την επιπρόσθεση ενός στην "
+"αρχή."
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "--diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων."
 
@@ -1211,15 +1265,16 @@ 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:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  εμφάνιση αυτής εδώ της βοήθειας κι έξοδος"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Έξοδος ονόματος κι έκδοσης."
+msgstr "-v,  --version  εμφάνιση πληροφοριών έκδοσης κι έξοδος"
 
 #: src/diff3.c:458
 #, c-format
@@ -1243,6 +1298,19 @@ msgid ""
 "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, -X (και οι αντίστοιχες μακρές) επιλογές δημιουργούν ένα ed "
+"script\n"
+"στην έξοδο αντί της προεπιλογής.\n"
+"\n"
+"Τελικά, η επιλογή -m (--merge) υποχρεώνει το diff3 να κάνει τη συγχώνευση "
+"εσωτερικά\n"
+"και να εμφανίσει στην έξοδο το συγχωνευμένο αρχείο.  Για μη συνηθισμένη "
+"είσοδο, αυτό είναι\n"
+"σταθερότερο απο την χρήση του ed.\n"
 
 #: src/diff3.c:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
@@ -1250,175 +1318,157 @@ msgstr "Σε επιτυχία η έξοδος είναι 0, σε σύγκρου
 
 #: src/diff3.c:675
 msgid "internal error: screwup in format of diff blocks"
-msgstr "εσωτερικό σφάλμα: μπέρδεμα στις μορφές των μπλοκ `diff'"
+msgstr "εσωτερικό σφάλμα: μπέρδεμα στις μορφές των μπλοκ diff"
 
 #: src/diff3.c:968
 #, c-format
 msgid "%s: diff failed: "
-msgstr "%s: αποτυχία του `diff': "
+msgstr "%s: αποτυχία του diff: "
 
 #: src/diff3.c:990
 msgid "internal error: invalid diff type in process_diff"
-msgstr "εσωτερικό σφάλμα: άκυρος τύπος `diff' στο process_diff"
+msgstr "εσωτερικό σφάλμα: άκυρος τύπος diff στο process_diff"
 
 #: src/diff3.c:1015
 msgid "invalid diff format; invalid change separator"
-msgstr "άκυρη μορφή `diff': άκυρος οριοθέτης αλλαγής"
+msgstr "άκυρη μορφή diff· άκυρος οριοθέτης αλλαγής"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "άκυρη μορφή `diff': ασυμπλήρωτη τελευταία γραμμή"
+msgstr "άκυρη μορφή diff· ασυμπλήρωτη τελευταία γραμμή"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "το υποπρόγραμμα «%s» δεν ήταν δυνατόν να κληθεί"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "άκυρη μορφή `diff': λάθος χαρακτήρες στη γραμμή αποτελεσμάτων"
+msgstr "άκυρη μορφή diff· λάθος χαρακτήρες στη γραμμή αποτελεσμάτων"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "εσωτερικό σφάλμα: άκυρος τύπος `diff' πέρασε στην έξοδο"
+msgstr "εσωτερικό σφάλμα: άκυρος τύπος diff πέρασε στην έξοδο"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "Το αρχείο εισόδου συρρικνώθηκε"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "αδύνατη η σύγκριση των ονομάτων αρχείων «%s» και «%s»"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: αναδρομικός βρόχος στον κατάλογο"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o ΑΡΧΕΙΟ  --output=ΑΡΧΕΙΟ  Αλληλεπιδραστική λειτουργία\n"
-" με αποστολή εξόδου στο ΑΡΧΕΙΟ."
+"-o,  --output=ΑΡΧΕΙΟ  Αλληλεπιδραστική λειτουργία με αποστολή εξόδου στο "
+"ΑΡΧΕΙΟ."
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  Θεωρεί πεζά-κεφαλαία ίδια."
+msgstr "-i,  --ignore-case  Θεωρεί πεζά-κεφαλαία ίδια"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση."
+"-E,  --ignore-tab-expansion  Αγνοεί αλλαγές οφειλόμενες στη στηλοθέτηση"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr ""
+"-Z, --ignore-trailing-space  αγνοεί το λευκό διάστημα στο τέλος γραμμής"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
-"-b  --ignore-space-change  Αγνοεί αλλαγές οφειλόμενες στα λευκά διαστήματα."
+"-b  --ignore-space-change  αγνοεί αλλαγές οφειλόμενες στον αριθμό λευκών "
+"διαστημάτων"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
+msgstr "-W,  --ignore-all-space  Αγνοεί όλα τα λευκά διαστήματα."
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines  Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές."
+"-B,  --ignore-blank-lines  Αγνοεί αλλαγές οφειλόμενες στις λευκές γραμμές"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Αγνοεί αλλαγές που οι γραμμές τους "
-"ταιριάζουν με RE."
+"-I, --ignore-matching-lines=RE  αγνοεί αλλαγές που οι γραμμές τους "
+"ταιριάζουν με RE"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο."
+msgstr "--strip-trailing-cr  Απαλειφή του χαρακτήρα επιστροφής στην είσοδο"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Θεωρεί όλα τα αρχεία ως κείμενο."
+msgstr "-a  --text  Θεωρεί όλα τα αρχεία ως κείμενο"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w ΑΡ  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)."
+"-w,  --width=ΑΡ  Έξοδος με το πολύ ΑΡ στήλες εκτύπωσης (προεπιλογή 130)."
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr ""
-"-l  --left-column  Εμφάνιση στην αριστερή στήλη των ταυτόσημων γραμμών."
+msgstr "-l,  --left-column  Εμφάνιση στην αριστερή στήλη των κοινών γραμμών"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Οι ταυτόσημες γραμμές δεν εμφανίζονται."
+msgstr "-s,  --suppress-common-lines  Οι ταυτόσημες γραμμές δεν εμφανίζονται"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο."
+msgstr "-t,  --expand-tabs  Μετατροπή στηλοθετών σε διαστήματα στην έξοδο"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=ΑΡ  Ο αριθμός διαστημάτων του στηλοθέτη είναι ΑΡ (προεπιλογή 8)."
+"  --tabsize=ΑΡ  Ο αριθμός διαστημάτων του στηλοθέτη είναι ΑΡ (προεπιλογή 8) "
+"στήλες"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr ""
-"-d  --minimal  Αν είναι δυνατόν εμφάνιση του μικρότερου συνόλου διαφορών."
+msgstr "-d, --minimal   προσπάθεια εύρεσης μικρότερου συνόλου αλλαγών"
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες "
-"μικÏ\81οαλλαγέÏ\82."
+"-H,  --speed-large-files  Υποθέτει μεγάλα αρχεία με πολλές σκόρπιες "
+"μικÏ\81οδιαÏ\86οÏ\81έÏ\82"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων."
+msgstr "--diff-program=ΠΡΟΓΡ  Χρήση του ΠΡΟΓΡάμματος στη σύγκριση αρχείων"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help    εμφάνιση αυτής εδώ της βοήθειας κι έξοδος "
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Î\88ξοδοÏ\82 Î¿Î½Ï\8cμαÏ\84οÏ\82 ÎºÎ¹ Î­ÎºÎ´Î¿Ï\83ηÏ\82."
+msgstr "-v  --version  Î¿Î½Ï\8cμα, Î­ÎºÎ´Î¿Ï\83η ÎºÎ¹ Î­Î¾Î¿Î´Î¿Ï\82"
 
 #: src/sdiff.c:206
 #, c-format
@@ -1426,9 +1476,8 @@ msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Χρήση: %s [ΕΠΙΛΟΓΗ]... ΑΡΧΕΙΟ1 ΑΡΧΕΙΟ2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Συγχώνευση δίπλα-δίπλα των διαφορών του αρχείου."
+msgstr "Συγχώνευση δίπλα-δίπλα των διαφορών των ΑΡΧΕΙΟ1 και ΑΡΧΕΙΟ2."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
@@ -1439,7 +1488,6 @@ msgid "both files to be compared are directories"
 msgstr "και τα δύο προς σύγκριση αρχεία είναι κατάλογοι"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1464,92 +1512,20 @@ msgstr ""
 "v:\tΣυμπεριλαμβάνει τις ταυτόσημες γραμμές και το επισημαίνει.\n"
 "q:\tΈξοδος.\n"
 
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: η επιλογή -- %c είναι παράτυπη\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 ""
-#~ "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"
-
-#~ 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  Ουδεμία έξοδος, μόνο μήνυμα πέρατος εκτέλεσης."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help  Έξοδος αυτής εδώ της βοήθειας."
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "Αναφέρατε σφάλματα στη <bug-gnu-utils@gnu.org>."
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "η επιλογή «-%ld» έχει καταργηθεί, χρησιμοποιείστε την «-%c %ld»"
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "η επιλογή «-%ld» έχει καταργηθεί, παραλείψτε την "
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: η επιλογή «--%s» δεν αναγνωρίζεται\n"
 
-#~ 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 ΑΡ  --context[=ΑΡ]       Έξοδος ΑΡ (προεπιλογή 3) γραμμών\n"
-#~ "                                συμφραζομένων.\n"
-#~ "-u  -U ΑΡ  --unified[=ΑΡ]       Έξοδος ΑΡ (προεπιλογή 3) γραμμών\n"
-#~ "                                ενοποιημένων συμφραζομένων.\n"
-#~ "  --label LABEL                 Χρήση LABEL αντί όνοματος αρχείου.\n"
-#~ "  -p  --show-c-function         Δείχνει τη συνάρτηση της C\n"
-#~ "                                που περιέχει κάθε διαφορά.\n"
-#~ "-F RE  --show-function-line=RE  Δείχνει την πιο πρόσφατη γραμμή\n"
-#~ "                                που ταιριάζει με τη 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  Έξοδος σε δύο στήλες.\n"
-#~ "  -W ΑΡ  --width=ΑΡ  Έξοδος με ΑΡ το πολύ χαρακτήρες ανά γραμμή "
-#~ "(προεπιλογή 130).\n"
-#~ "  --left-column  Έξοδος μόνο αριστερής στήλης με τις ταυτόσημες γραμμές.\n"
-#~ "  --suppress-common-lines  Δεν εμφανίζει τις ταυτόσημες γραμμές."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  Υποθέτει μεγάλα αρχεία και πολλές σκόρπιες "
-#~ "μικροαλλαγές."
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
 
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Έξοδος των αλλαγών που επικαλύπτονται, σε αγκύλες."
+#~ msgid "-v, --version    output version information and exit"
+#~ msgstr "-v  --version  εμφάνιση έκδοσης κι έξοδος."
 
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
+#~ msgid " --label LABEL    use LABEL instead of file name  (can be repeated)"
 #~ msgstr ""
-#~ "-m  --merge  Έξοδος αρχείου συγχώνευσης αντί σεναρίου εντολών "
-#~ "`ed' (προεπιλογή -A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L ΕΤΙΚ  --label=ΕΤΙΚ  Χρήση  ΕΤΙΚέτας αντί του ονόματος αρχείου."
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "Δε βρέθηκε το βοηθητικό πρόγραμμα <%s>"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "Αποτυχία του βοηθητικού προγράμματος «%s»"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "το βοηθητικό πρόγραμμα «%s» διεκόπη (κατάσταση έξοδου %d)"
+#~ " --label LABEL    χρήση LABEL αντί ονόματος αρχείου (μπορεί να "
+#~ "επαναληφθεί)"
index e23cbeb..d43b0b2 100644 (file)
Binary files a/po/eo.gmo and b/po/eo.gmo differ
index 1170654..aff5aa1 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
 # Esperantaj mesaĝoj por GNU diffutils.
-# Copyright (C) 1996 Free Software Foundation, Inc.
-# Edmund GRIMLEY EVANS <edmundo@rano.org>, 2001-2004.
+# Copyright (C) 1996, 2001, 2002, 2004, 2013 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.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: GNU diffutils 2.8.7\n"
+"Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-05-22 15:31+0100\n"
-"Last-Translator: Edmund GRIMLEY EVANS <edmundo@rano.org>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2013-10-31 13:16-0300\n"
+"Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
 "Language: eo\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "malvalida %s%s-argumento '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "malvalida %s%s-argumento '%s'"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
-msgstr "programeraro"
+msgstr "program-eraro"
 
 #: lib/c-stack.c:205 lib/c-stack.c:298
 msgid "stack overflow"
 msgstr "stako tro granda"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Nekonata sistemeraro"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "normala malplena dosiero"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "normala dosiero"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "dosierujo"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "blokaparatdosiero"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "signoaparatdosiero"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "simbola ligo"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "konektilo"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "mesaĝovico"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semaforo"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "komuna memoro"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "tipita memora objekto"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "blok-aparatdosiero"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "sign-aparatdosiero"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "blok-aparatdosiero"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "sign-aparatdosiero"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "stranga dosiero"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "blok-aparatdosiero"
+
+#: 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 "konektilo"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "stranga dosiero"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: opcio '%s' estas plursenca\n"
+msgstr "%s: la modifilo '%s' estas plursenca; ebloj:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: la modifilo '-W %s' estas plursenca\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: opcio '--%s' ne permesas argumenton\n"
+msgstr "%s: la modifilo '--%s' ne permesas argumenton\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: opcio '%c%s' ne permesas argumenton\n"
+msgstr "%s: la modifilo '%c%s' ne permesas argumenton\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s opcio '%s' postulas argumenton\n"
+msgstr "%s: la modifilo '--%s' postulas argumenton\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: nekonata opcio '--%s'\n"
+msgstr "%s: nerekonata modifilo '--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: nekonata opcio '%c%s'\n"
+msgstr "%s: nerekonata modifilo '%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: nevalida opcio -- %c\n"
+msgstr "%s: malvalida modifilo -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: opcio postulas argumenton -- %c\n"
+msgstr "%s: la modifilo postulas argumenton -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: opcio '-W %s' estas plursenca\n"
+msgstr "%s: la modifilo '-W %s' estas plursenca\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: opcio '-W %s' ne permesas argumenton\n"
+msgstr "%s: la modifilo '-W %s' ne permesas argumenton\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s opcio '%s' postulas argumenton\n"
+msgstr "%s: la modifilo '-W %s' postulas argumenton\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -155,85 +226,86 @@ msgstr "%s opcio '%s' postulas argumenton\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Sukceso"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Nenia trafo"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
-msgstr "Nevalida regula esprimo"
+msgstr "Malvalida regulesprimo"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
-msgstr "Nevalida ordiga signo"
+msgstr "Malvalida ordiga signo"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
-msgstr "Nevalida nomo de signoklaso"
+msgstr "Malvalida nomo de signoklaso"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
-msgstr "'\\' ĉe la fino"
+msgstr "Vosta retroklino"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
-msgstr "Nevalida retroreferenco"
+msgstr "Malvalida retroreferenco"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Neparigita [ aŭ [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Neparigita ( aŭ \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Neparigita \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
-msgstr "Nevalida kunteksto de \\{\\}"
+msgstr "Malvalida kunteksto de \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
-msgstr "Nevalida fino de gamo"
+msgstr "Malvalida intervalo-fino"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
-msgstr "Memoro elĉerpiĝis"
+msgstr "Memoro estas elĉerpita"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
-msgstr "Nevalida antaŭa regula esprimo"
+msgstr "Malvalida antaŭa regulesprimo"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
-msgstr "Neatendita fino de regulesprimo"
+msgstr "Neatendita fino de regulesprimo"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
-msgstr "Regula esprimo estas tro granda"
+msgstr "Regula esprimo tro grandas"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Neparigita ) aŭ \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
-msgstr "Mankas antaŭa regulesprimo"
+msgstr "Mankas antaŭa regulesprimo"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
@@ -241,57 +313,56 @@ msgstr "memoro elĉerpiĝis"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "ĉefenigujo"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "ĉefeligujo"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "ĉeferar-eligujo"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Nekonata sistemeraro"
+msgstr "nekonata fluo"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "malsukcesis remalfermi %s per reĝimo %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "nevalida valoro '%s' de --bytes"
+msgstr "malvalida %s%s-argumento '%s'"
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "malvalida sufikso en %s%s-argumento '%s'"
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "%s%s-argumento '%s' tro larĝas"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Pakigita de %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Pakigita 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:84
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
 #: lib/version-etc.c:86
 msgid ""
@@ -302,6 +373,13 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Permeso GPLv3+: GNU GPL versio 3 aŭ posta <http://gnu.org/licenses/gpl."
+"html>.\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:102
@@ -421,139 +499,143 @@ msgid ""
 "\n"
 "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:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Raportu %s misojn al: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s hejm-paĝo: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s hejm-paĝo: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
+"Ĝenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Dosieroj %s kaj %s estas malsamaj\n"
 
-#: src/analyze.c:462
-#, fuzzy, c-format
+#: src/analyze.c:455
+#, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Dosieroj %s kaj %s estas malsamaj\n"
+msgstr "Ciferecaj dosieroj %s kaj %s estas malsamaj\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Mankas linifino ĉe fino de dosiero"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:43
 msgid "Torbjorn Granlund"
-msgstr "Torbjorn Granlund"
+msgstr "Torbjorn GRANLUND"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MACKENZIE"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Provu '%s --help' por pli da informoj."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "nevalida valoro '%s' de --ignore-initial"
+msgstr "malvalida valoro '%s' de --ignore-initial"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
-msgstr "opcioj -l kaj -s malkongruas"
+msgstr "modifiloj -l kaj -s malakordas"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "skriberaro"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "normala eligo"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Eligi diferencajn bitokojn."
+msgstr "-b, --print-bytes          eligi malsamajn bajtojn"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i N  --ignore-initial=N  Ignori la unuajn N bitokojn de la enigo."
+msgstr ""
+"-i N  --ignore-initial=SALTO     preterpasi la unuajn SALTO bajtojn de ambaŭ "
+"enigoj"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"  Ignori la unuajn N1 bitokojn de DOSIERO1 kaj la unuajn N2 bitokojn de "
-"DOSIERO2."
+"-i, --ignore-initial=SALT1:SALT2  pretersalti la unuajn SALT1 bajtojn de\n"
+"                                      DOSIERO1 kaj la unuajn SALT2 bajtojn\n"
+"                                      de DOSIERO2"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l  --verbose  Eligi indeksojn kaj kodojn de ĉiuj diferencaj bitokoj."
+msgstr ""
+"-l, --verbose              montri numerojn kaj valorojn de ĉiuj malsamaj "
+"bajtoj"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMO  --bytes=LIMO  Kompari maksimume LIMO bitokojn."
+msgstr "-n, --bytes=LIMO           kompari maksimume LIMO bajtojn"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      forkaŝi ĉiun normalan eligon"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 montri ĉi tiun helpon kaj eliri"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Eligi informojn pri la versio."
+msgstr " -v, --version             eligi informon pri versio kaj eliri"
 
 #: src/cmp.c:178
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Uzado: %s [OPCIO]... DOSIERO1 [DOSIERO2 [N1 [N2]]]\n"
+msgstr "Uzmaniero: %s [MODIFILO]... DOSIERO1 [DOSIERO2 [SALT1 [SALT2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Kompari du dosierojn bitokon post bitoko."
+msgstr "Kompari du dosierojn bajton post bajto."
 
 #: src/cmp.c:182
-#, 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 kaj N2 estas la nombro de bitokoj ignorendaj en ĉiu dosiero."
+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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -561,46 +643,45 @@ msgid ""
 "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 ""
-"Valoroj povas esti sekvataj de la sekvaj multobligaj sufiksoj:\n"
+"Valoroj de SALTO povas esti sekvataj de la sekvaj multobligaj sufiksoj:\n"
 "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:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se DOSIERO estas '-' aŭ mankas, legi la normalan enigon."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 problemo."
+"Elig-valoro estas 0 se enigoj estas samaj, 1 se malsamaj, 2 se problemaj."
 
 #: src/cmp.c:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "nevalida valoro '%s' de --bytes"
+msgstr "malvalida valoro '%s' de --bytes"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "argumento mankas post '%s'"
+msgstr "mankas argumento post '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "kroma argumento '%s'"
+msgstr "superflua argumento '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s %s malsamaj: bitoko %s, linio %s\n"
+msgstr "%s %s malsamas: bajto %s, linio %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
-msgstr "%s %s malsamaj: bitoko %s, linio %s estas %3o %s %3o %s\n"
+msgstr "%s %s malsamas: bajto %s, linio %s estas %3o %s %3o %s\n"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF ĉe %s\n"
@@ -608,333 +689,321 @@ msgstr "cmp: EOF ĉe %s\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul EGGERT"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike HAERTEL"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David HAYES"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard STALLMANN"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len TOWER"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "nevalida longo '%s' de kunteksto"
+msgstr "malvalida longo '%s' de kunteksto"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "dispaĝigo ne eblas kun ĉi tiu sistemo"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "tro da dosieretikedopcioj"
+msgstr "tro multe da dosier-etikedaj modifiloj"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "nevalida larĝo '%s'"
+msgstr "malvalida larĝo '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
-msgstr "malkongruaj opcioj pri larĝo"
+msgstr "malakordaj modifiloj pri larĝo"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "nevalida horizonta longo '%s'"
+msgstr "malvalida horizonta longo '%s'"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "nevalida TAB-larĝo '%s'"
+msgstr "malvalida TAB-larĝo '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
-msgstr "malkongruaj opcioj pri TAB-larĝo"
+msgstr "malkongruaj modifiloj pri TAB-larĝo"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file kaj --to-file ambaŭ specifitaj"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Eligi normalan diferencaron."
+msgstr "    --normal                  montri normalan malsamon (aprioras)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Eligi nur, ĉu la dosieroj estas malsamaj."
+msgstr "-q, --brief                   montri nur kiam la dosieroj malsamas"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Raporti, kiam du dosieroj estas samaj."
+msgstr "-s, --report-identical-files  montri kiam du dosieroj samas"
 
-#: src/diff.c:857
+#: src/diff.c:886
 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:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
-msgstr "-w NOM  --width=NOM  Eligi maksimume NOM (implicite 130) kolumnojn."
+msgstr ""
+"-u, -U NUM, --unified[=NUM]   montri NUM (aprioras 3) liniojn da unuigita "
+"kunteksto"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Eligi ed-programeton."
+msgstr "-e, --ed                      montri ed-skripton"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Eligi diferencaron en RCS-formo."
+msgstr "-n, --rcs                     montri malsamon laŭ RCS-formo"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            montri en du kolumnoj"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr "-w NOM  --width=NOM  Eligi maksimume NOM (implicite 130) kolumnojn."
+msgstr ""
+"-W, --width=NUM               montri maksimume NUM (aprioras 130) kolumnojn"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
-"-l  --left-column  Montri nur la maldekstran kolumnon de komunaj linioj."
+"    --left-column             montri nur la maldekstran kolumnon de komunaj "
+"linioj"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Ne eligi komunajn liniojn."
+msgstr "    --suppress-common-lines   ne montri komunajn liniojn"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
-msgstr ""
+msgstr "-p, --show-c-function         montri en kiu C-funkcio ĉiu ŝanĝo estas"
 
-#: src/diff.c:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label ETIKEDO            uzi ETIKEDOn anstataŭ dosiernomo\n"
+"                                (povas esti ripetata)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Konverti TABojn al spacetoj en la eligo."
+msgstr "-t, --expand-tabs             etendigi tabojn al spacoj en la eligo"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Ĝustigi TABojn per antaŭmetado de spaceto."
+msgstr "-T, --initial-tab             ĝustigi tabojn per antaŭmeto de tabo"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
-msgstr "--tabsize=NOM  TAB-lokoj estas post ĉiuj NOM (implicite 8) kolumnoj."
+msgstr ""
+"    --tabsize=NUM             tab-lokoj estas post ĉiuj NUM (aprioras 8) "
+"kolumnoj"
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate  Pasigi la eligon tra 'pr' por enpaĝigi ĝin."
+msgstr ""
+"-l, --paginate                pasigi la eligon tra 'pr' por enpaĝigi ĝin"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Rekurse kompari trovitajn subdosierujojn."
+msgstr ""
+"-r, --recursive                 rikure kompari trovitajn subdosierujojn"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            ne sekvi simbolajn ligojn"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Trakti mankantajn dosierojn kiel malplenajn."
+msgstr ""
+"-N, --new-file                  trakti mankantajn dosierojn kiel malplenajn"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file  Trakti mankantajn unuajn dosierojn kiel "
-"malplenajn."
+"    --unidirectional-new-file   trakti mankantajn unuajn dosierojn kiel "
+"malplenajn"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
-msgstr "--ignore-file-name-case  Ignori usklecon en komparado de dosiernomoj."
+msgstr ""
+"    --ignore-file-name-case     preteratenti usklecon dum komparo de "
+"dosiernomoj"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Konsideri usklecon en komparado de dosiernomoj."
+"    --no-ignore-file-name-case  konsideri usklecon dum komparo de dosiernomoj"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x ŜAB  --exclude=ŜAB  Ignori dosierojn, kiuj kongruas kun ŜABlono."
+msgstr ""
+"-x, --exclude=ŜABLONO           forigi dosierojn, kiuj kongruas kun ŜABLONO"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X DOS   --exclude-from=DOS   Ignori dosierojn, kiuj kongruas kun iu ŝablono "
-"en DOSiero."
+"-X, --exclude-from=DOSIERO      forigi dosierojn, kiuj kongruas kun iu "
+"ŝablono en DOSIERO"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S DOS   --starting-file=DOS   Komenci per DOSiero, komparante dosierujojn."
+"-S, --starting-file=DOSIERO     komenci per DOSIERO, komparante dosierujojn"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=DOS1   Kompari DOS1 kun ĉiuj argumentoj. DOS1 povas esti "
-"dosierujo."
+"    --from-file=DOSIERO1        kompari DOSIERO1 kun ĉiuj argumentoj;\n"
+"                                  DOSIERO1 povas esti dosierujo"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=DOS2   Kompari ĉiujn argumentoj kun DOS2. DOS2 povas esti "
-"dosierujo."
+"    --to-file=DOSIERO2          kompari ĉiujn argumentojn kun DOSIERO2;\n"
+"                                  DOSIERO2 povas esti dosierujo"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  Ignori diferencojn en uskleco en dosierenhavo."
+msgstr ""
+"-i, --ignore-case               preteratenti malsamojn en uskleco en "
+"dosierenhavo"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Ignori ŝanĝojn kaŭzatajn de TAB-oj."
+msgstr ""
+"-E, --ignore-tab-expansion      preteratenti ŝanĝojn kaŭzatajn de tab-"
+"etendigo"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignori ĉian blankan spacon."
+msgstr "-Z, --ignore-trailing-space     preteratenti blank-spacon ĉe linifino"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignori ŝanĝojn en blanka spaco."
+msgstr ""
+"-b, --ignore-space-change       preteratenti ŝanĝojn en kvanto da blank-spaco"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Ignori ĉian blankan spacon."
+msgstr "-w, --ignore-all-space          preteratenti ĉiun blankan spacon"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B  --ignore-blank-lines  Ignori ŝanĝojn, kies linioj estas malplenaj."
+msgstr ""
+"-B, --ignore-blank-lines         preteratenti ŝanĝojn, kie linioj estas ĉiuj "
+"malplenaj"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignori ŝanĝojn, kies linioj ĉiuj kongruas "
-"kun RE."
+"-I, --ignore-matching-lines=RE  preteratenti ŝanĝojn, kie ĉiuj linioj "
+"kongruas al RE"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Trakti ĉiujn dosierojn kiel tekstajn."
+msgstr "-a, --text                     trakti ĉiujn dosierojn kiel tekstajn"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Forigi linifinan CR ĉe enigo."
+msgstr "    --strip-trailing-cr         forigi linifinan CR ĉe enigo"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Legi kaj skribi datenojn binare."
+msgstr "    --binary                    legi kaj skribi datumaron ciferece"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NOMO  --ifdef=NOMO  Eligi kunfanditan dosieron por montri '#ifdef NOMO'-"
-"diferencojn."
+"-D, --ifdef=NOMO                montri kunfanditan dosieron kun malsamoj "
+"'#ifdef NOMO'"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=GFMT  Simile, sed montri GTYPE-enig-grupojn per GFMT."
+msgstr "    --GTYPE-group-format=GFMT   enformigi enig-grupojn GTYPE per GFMT"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LFMT  Simile, sed montri ĉiujn enigliniojn per LFMT."
+msgstr "    --line-format=LFMT          enformigi ĉiujn enigliniojn per LFMT"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=LFMT  Simile, sed montri LTYPE-enig-grupojn per LFMT."
+msgstr "    --LTYPE-line-format=LFMT    enformigi enig-grupojn LTYPE per LFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Tiuj enformigaj modifiloj provizas rafinitan regadon pri la eligo\n"
+"    de diff, ĝeneraliganta -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE estas 'old', 'new' aŭ 'unchanged'. GTYPE estas LTYPE aŭ 'changed'."
+"  LTYPE estas 'old', 'new' aŭ 'unchanged'.  GTYPE estas LTYPE aŭ 'changed'."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -949,33 +1018,32 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT povas enhavi:\n"
+"  GFMT (nur) povas enhavi:\n"
 "    %<  linioj el DOSIERO1\n"
 "    %>  linioj el DOSIERO2\n"
 "    %=  linioj komunaj al DOSIERO1 kaj DOSIERO2\n"
-"    %[-][LARĜO][.[PREC]]{doxX}LITERO  printf-stila specifo por LITERO\n"
+"    %[-][LARĜO][.[PREC]]{doxX}LITERO  printf-stila indiko por LITERO\n"
 "     LITEROJ estas jenaj por nova grupo, minuskle por malnova grupo:\n"
 "       F  unua lininumero\n"
 "       L  lasta lininumero\n"
 "       N  nombro de linioj = L-F+1\n"
 "       E  F-1\n"
-"       M  L+1"
+"       M  L+1\n"
+"    %(A=B?T:E)  se A egalas al B, do T, male E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 povas enhavi:\n"
+"  LFMT (nur) povas enhavi:\n"
 "    %L  enhavo de linio\n"
 "    %l  enhavo linio, sen eventuala linifino\n"
-"    %[-][LARĜO][.[PREC]]{doxX}n  printf-stila specifo de lininumero"
+"    %[-][LARĜO][.[PREC]]{doxX}n  printf-stila indiko de lininumero"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -986,217 +1054,233 @@ msgstr ""
 "  Kaj GFMT kaj LFMT povas enhavi:\n"
 "    %% %\n"
 "    %c'C'  la unuopa signo C\n"
-"    %c'\\000'  la signo kun okuma kodo OOO"
+"    %c'\\000'  la signo kun okuma kodo OOO\n"
+"    C    la signo C (aliaj signoj reprezentas ili mem)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Pene serĉi malpli grandan aron da ŝanĝoj."
+msgstr "-d, --minimal            strebe serĉi pli etan aron da ŝanĝoj"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=NOM  Gardi NOM liniojn de la komuna prefikso kaj sufikso."
+"    --horizon-lines=NUM  teni NUM liniojn de la komuna prefikso kaj sufikso"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Atendi grandajn dosierojn kaj multajn disajn "
-"ŝanĝetojn."
+"    --speed-large-files  atendi grandajn dosierojn kaj multajn disajn "
+"ŝanĝetojn"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Eligi informojn pri la versio."
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  montri normalan malsamon (aprioras)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
-"DOSIEROJ estas 'DOSIERO1 DOSIERO2' aŭ 'DOSIERUJO1 DOSIERUJO2' aŭ DOSIERUJO "
-"DOSIERO...' aŭ 'DOSIERO... DOSIERUJO'."
 
-#: src/diff.c:942
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               montri ĉi tiun helpon kaj eliri"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            montri informon pri versio kaj eliri"
+
+#: src/diff.c:974
 #, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"DOSIEROJ estas 'DOSIERO1 DOSIERO2' aŭ 'UJO1 UJO2' aŭ 'UJO DOSIERO...' aŭ "
+"'DOSIERO... UJO'."
+
+#: src/diff.c:975
 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 de DOSIEROJ."
+"Se --from-file aŭ --to-file estas donita, ne estas limigoj por DOSIERO(j)."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Se DOSIERO estas '-', legi la normalan enigon."
+msgstr "Se DOSIERO estas '-', legi la ĉefenigujon."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Uzado: %s [OPCIO]... DOSIEROJ\n"
+msgstr "Uzmaniero: %s [MODIFILO]... DOSIEROJ\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Kompari dosierojn linion post linio."
+msgstr "Kompari DOSIEROJn linion post linio."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "malkongrua valoro de opcio %s: '%s'"
+msgstr "malakorda valoro de opcio %s: '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
-msgstr "malkongruaj opcioj pri eligostilo"
+msgstr "malakordaj modifiloj pri elig-stilo"
+
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "malvalida larĝo '%s'"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Nur en %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "ne povas kompari '-' kun dosierujo"
+msgstr "ne eblas kompari '-' al dosierujo"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
-msgstr "opcio -D ne eblas kun dosierujoj"
+msgstr "modifilo -D ne estas subtenata kun dosierujoj"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Komunaj subdosierujoj: %s kaj %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Dosieroj %s kaj %s estas malsamaj\n"
+msgstr "Simbolaj ligoj %s kaj %s malsamas\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Dosieroj %s kaj %s estas samaj\n"
+msgstr "Dosieroj %s kaj %s samas\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Randy SMITH"
 
 #: src/diff3.c:313
 #, c-format
 msgid "incompatible options"
-msgstr "malkongruaj opcioj"
+msgstr "malkongruaj modifiloj"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "'-' donita por pli ol unu enigdosiero"
+msgstr "'-' indikita por pli ol unu enigdosiero"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
-msgstr "legeraro"
+msgstr "lego fiaskis"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Eligi ĉiujn ŝanĝojn, kun konfliktoj en parentezoj."
+msgstr ""
+"-A, --show-all              montri ĉiujn ŝanĝojn, kun konfliktoj inter "
+"krampoj"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Eligi nekunfanditajn ŝanĝojn de OLDFILE al YOURFILE en MYFILE."
+"-e, --ed                    montri ed-skripton enkorpigantan ŝanĝojn\n"
+"                                de PRADOSIERO al VIADOSIERO en MIADOSIEROn"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr ""
-"-E  --show-overlap  Eligi nekunfanditajn ŝanĝojn, kun konfliktoj en "
-"parentezoj."
+msgstr "-E, --show-overlap          kiel -e, sed kun konfliktoj inter krampoj"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Eligi nekunfanditajn neinterkovriĝantajn ŝanĝojn."
+msgstr ""
+"-3, --easy-only             kiel -e, sed enkorpigi nur ne-interkovriĝantajn "
+"ŝanĝojn"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Eligi interkovriĝantajn ŝanĝojn."
+msgstr ""
+"-x, --overlap-only          kiel -e, sed enkorpigi nur interkovriĝantajn "
+"ŝanĝojn"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          kiel -x, sed kun konfliktoj inter krampoj"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Aldoni la komandojn 'w' kaj 'q' al ed-programetoj."
+msgstr ""
+"-i                          aldoni la komandojn 'w' kaj 'q' al ed-skriptoj"
 
 #: src/diff3.c:438
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 montri veran kunfanditan dosieron, akorde al\n"
+"                                -A se neniu alia modifilo ĉeestas"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Trakti ĉiujn dosierojn kiel tekstajn."
+msgstr "-a, --text                  trakti ĉiujn dosierojn kiel tekstajn"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Forigi linifinan CR ĉe enigo."
+msgstr "    --strip-trailing-cr     forigi linifinan CR ĉe enigo"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Ĝustigi TABojn per antaŭmetado de spaceto."
+msgstr "-T, --initial-tab           ĝustigi tabojn per antaŭmeto de tabo"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAMO  Uzi PROGRAMOn por kompari dosierojn."
+msgstr "    --diff-program=PROGRAMO uzi PROGRAMOn por kompari dosierojn"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=ETIKEDO          uzi ETIKEDOn anstataŭ dosiernomo\n"
+"                                (povas esti ripetata ĝis 3 fojoj)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  montri ĉi tiun helpon kaj eliri"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Eligi informojn pri la versio."
+msgstr "-v, --version               eligi informon pri versio kaj eliri"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Uzado: %s [OPCIO]... MYFILE OLDFILE YOURFILE\n"
+msgstr "Uzmaniero: %s [MODIFILO]... MIADOSIERO PRADOSIERO VIADOSIERO\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
@@ -1215,6 +1299,16 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"La apriora elig-formo estas iom hom-legebla reprezento de la ŝanĝoj.\n"
+"\n"
+"La modifiloj -e, -E, -x, -X (kaj korespondaj long-formoj) eligas ed-"
+"skripton\n"
+"anstataŭ la aprioron.\n"
+"\n"
+"Fine, la modifilo -m (--merge) igas ke diff3 kunfandu interne kaj\n"
+"eligu la veran kunfanditan dosieron.  Por ne-ordinara enigo, tio ĉi estas\n"
+"pli fortika ol la uzo de ed.\n"
 
 #: src/diff3.c:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
@@ -1231,179 +1325,170 @@ msgstr "%s: diff malsukcesis: "
 
 #: src/diff3.c:990
 msgid "internal error: invalid diff type in process_diff"
-msgstr "interna eraro: nevalida diff-speco en process_diff"
+msgstr "interna eraro: malvalida diff-speco en process_diff"
 
 #: src/diff3.c:1015
 msgid "invalid diff format; invalid change separator"
-msgstr "nevalida diff-formato; nevalida ŝanĝ-apartigilo"
+msgstr "malvalida diff-formato; malvalida ŝanĝ-apartigilo"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "nevalida diff-formato; malkompleta lasta linio"
+msgstr "malvalida diff-formato; malkompleta lasta linio"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "ne povis alvoki la subprogramon '%s'"
+msgstr "ne eblis alvoki la subprogramon '%s'"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "nevalida diff-formato; malĝusta signo en antaŭa linio"
+msgstr "malvalida diff-formato; malĝusta signo en antaŭa linio"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "interna eraro: nevalida diff-speco donita al eligo"
+msgstr "interna eraro: malvalida diff-speco donita al eligo"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "enigdosiero ŝrumpis"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "ne povas kompari dosiernomojn '%s' kaj '%s'"
+msgstr "ne eblas kompari dosiernomojn '%s' kaj '%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: rikura dosieruja ciklo"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas LORD"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr "-o DOS   --output=DOS   Funkcii interage, sendante eligon al DOSiero."
+msgstr ""
+"-o, --output=DOSIERO         funkcii interage, sendante eligon al DOSIERO"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  Trakti majusklojn kaj minusklojn kiel samajn."
+msgstr ""
+"-i, --ignore-case            konsideri majusklojn kaj minusklojn kiel samajn"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Ignori ŝanĝojn kaŭzatajn de TAB-oj."
+msgstr ""
+"-E, --ignore-tab-expansion   preteratenti ŝanĝojn kaŭzatajn de tab-etendigo"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignori ĉian blankan spacon."
+msgstr ""
+"-Z, --ignore-trailing-space  preteratenti ĉiun blank-spacon ĉe linifino"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Ignori ŝanĝojn en blanka spaco."
+msgstr ""
+"-b, --ignore-space-change     preteratenti ŝanĝojn en la kvanto da blank-"
+"spaco"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Ignori ĉian blankan spacon."
+msgstr "-W, --ignore-all-space       preteratenti ĉiun blank-spacon"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B  --ignore-blank-lines  Ignori ŝanĝojn, kies linioj estas malplenaj."
+msgstr ""
+"-B, --ignore-blank-lines     preteratenti ŝanĝojn, kie linioj estas ĉiuj "
+"malplenaj"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignori ŝanĝojn, kies linioj ĉiuj kongruas "
-"kun RE."
+"-I, --ignore-matching-lines=RE  preteratenti ŝanĝojn, kie ĉiuj linioj "
+"kongruas al RE"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Forigi linifinan CR ĉe enigo."
+msgstr "    --strip-trailing-cr      forigi linifinan CR ĉe enigo"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Trakti ĉiujn dosierojn kiel tekstajn."
+msgstr "-a, --text                   trakti ĉiujn dosierojn kiel tekstajn"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr "-w NOM  --width=NOM  Eligi maksimume NOM (implicite 130) kolumnojn."
+msgstr ""
+"-w, --width=NUM               montri maksimume NUM (aprioras 130) kolumnojn"
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
-"-l  --left-column  Montri nur la maldekstran kolumnon de komunaj linioj."
+"-l, --left-column             montri nur la maldekstran kolumnon de komunaj "
+"linioj"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Ne eligi komunajn liniojn."
+msgstr "-s, --suppress-common-lines  ne eligi komunajn liniojn"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Konverti TABojn al spacetoj en la eligo."
+msgstr "-t, --expand-tabs            etendigi tabojn al spacoj en la eligo"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
-msgstr "--tabsize=NOM  TAB-lokoj estas post ĉiuj NOM (implicite 8) kolumnoj."
+msgstr ""
+"    --tabsize=NUM             tab-lokoj estas post ĉiu NUM (aprioras 8) "
+"kolumnoj"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Pene serĉi malpli grandan aron da ŝanĝoj."
+msgstr "-d, --minimal                strebe serĉi pli etan aron da ŝanĝoj"
 
 #: src/sdiff.c:193
-#, fuzzy
 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."
+"-H, --speed-large-files      atendi grandajn dosierojn kaj multajn disajn "
+"ŝanĝetojn"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAMO  Uzi PROGRAMOn por kompari dosierojn."
+msgstr "    --diff-program=PROGRAMO  uzi PROGRAMOn por kompari dosierojn"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   montri ĉi tiun helpon kaj eliri"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Eligi informojn pri la versio."
+msgstr "-v, --version                montri informon pri versio kaj eliri"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Uzado: %s [OPCIO]... DOSIERO1 DOSIERO2\n"
+msgstr "Uzmaniero: %s [MODIFILO]... DOSIERO1 DOSIERO2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Ĉeflanka kunfando de dosierodiferencoj."
+msgstr "Apuda kunfando de malsamoj inter DOSIERO1 kaj DOSIERO2."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "ne povas interage kunfandi la normalan enigon"
+msgstr "ne eblas interage kunfandi la ĉefenigujon"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
 msgstr "ambaŭ komparendaj dosieroj estas dosierujoj"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1416,100 +1501,23 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\tredakti kaj uzi ambaŭ versiojn, ĉiu kun ĉapaĵo\n"
-"eb:\tredakti kaj uzi ambaŭ versiojn\n"
-"el:\tredakti kaj uzi maldekstran version\n"
-"er:\tredakti kaj uzi dekstran version\n"
-"e:\tredakti novan version\n"
-"l:\tuzi maldekstran version\n"
-"r:\tuzi dekstran version\n"
-"s:\tsilente transpreni komunajn liniojn\n"
-"v:\tlaŭte transpreni komunajn liniojn\n"
-"q:\tfini\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: nepermesita opcio -- %c.\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 ""
-#~ "Ĉi tio estas libera programo; vidu la fonton por kopi-kondiĉoj. Estas\n"
-#~ "NENIA GARANTIO; eĉ ne por KOMERCA KVALITO aŭ ADEKVATECO POR DIFINITA "
-#~ "CELO.\n"
-
-#~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-#~ msgstr "-i N1:N2  --ignore-initial=N1:N2"
-
-#~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
-#~ msgstr "-s  --quiet  --silent  Eligi nenion; doni nur elig-valoron."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help  Montri ĉi tiun helpon."
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "Raportu pri cimoj al <bug-gnu-utils@gnu.org>."
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "opcio '-%ld' estas malnova; uzu '-%c %ld'"
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "opcio '-%ld' estas malnova; ellasu ĝin"
-
-#~ 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 NOM  --context[=NOM]   Eligi NOM (implicite 3) liniojn da kopiita "
-#~ "kunteksto.\n"
-#~ "-u  -U NOM  --unified[=NOM]   Eligi NOM (implicite 3) liniojn da unuigita "
-#~ "kunteksto.\n"
-#~ "  --label ETIK  Uzi ETIKedon anstataŭ dosiernomo.\n"
-#~ "  -p  --show-c-function  Montri, en kiu C-funkcio estas ĉiu ŝanĝo.\n"
-#~ "  -F RE  -show-function-line=RE  Montri la plej lastan linion, kiu "
-#~ "kongruas kun 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  Eligi en du kolumnoj.\n"
-#~ "  -W NOM  --width=NOM  Eligi maksimume NOM (implicite 130) signojn en "
-#~ "linio.\n"
-#~ "  --left-column  Eligi nur la maldekstran kolumnon de komunaj linioj.\n"
-#~ "  --suppress-common-lines  Ne eligi komunajn liniojn."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  Atendi grandajn dosierojn kaj multajn disajn "
-#~ "ŝanĝetojn."
-
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Eligi interkovriĝantajn ŝanĝojn, en parentezoj."
-
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
-#~ msgstr ""
-#~ "-m  --merge  Eligi kunfanditan dosieron anstataŭ ed-programeto (implicite "
-#~ "-A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L ETIK   --label=ETIK   Uzi ETIKedon anstataŭ la dosiernomo."
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "subprogramo '%s' ne trovita"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "subprogramo '%s' malsukcesis"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "subprogramo '%s' malsukcesis (elig-valoro %d)"
+"ed:\tredakti kaj uzi ambaŭ versiojn, ĉiu kun kaplinioj.\n"
+"eb:\tredakti kaj uzi ambaŭ versiojn.\n"
+"el aŭ e1:\tredakti kaj uzi maldekstran version.\n"
+"er aŭ e2:\tredakti kaj uzi dekstran version.\n"
+"e:\tredakti novan version.\n"
+"l aŭ 1:\tuzi maldekstran version.\n"
+"r aŭ 2:\tuzi dekstran version.\n"
+"s:\tsilente transpreni komunajn liniojn.\n"
+"v:\tlaŭte transpreni komunajn liniojn.\n"
+"q:\tĉesi.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: nerekonata modifilo '--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 644d3e4..a57c4e1 100644 (file)
Binary files a/po/es.gmo and b/po/es.gmo differ
index 7e0435a..3ec5309 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2013-02-19 00:30+0100\n"
 "Last-Translator: Santiago Vila Doncel <sanvila@unex.es>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -17,6 +17,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento de %s%s inválido '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argumento de %s%s inválido '%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "error del programa"
@@ -25,119 +40,177 @@ msgstr "error del programa"
 msgid "stack overflow"
 msgstr "desbordamiento de pila"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Error del sistema desconocido"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "fichero regular vacío"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "fichero regular"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "directorio"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "fichero especial de bloques"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "fichero especial de caracteres"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "`fifo'"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "enlace simbólico"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "`socket'"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "cola de mensajes"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semáforo"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objeto de memoria compartido"
 
 # ¿Alguien sabe lo que es esto?
-#: lib/file-type.c:68
+#: 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"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "fichero especial de caracteres"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "fichero especial de bloques"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "fichero especial de caracteres"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
 # FIXME
 # se podría decir algo más decente para "weird" ... pero ¿qué?
 # ¿ no habitual ?  em
 # ¡Nchts! Prefiero extraño ... no habitual me suena muy difuso
 # siempre podemos poner escachifollado ;) ipg
-#: lib/file-type.c:70
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "fichero extraño"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "fichero especial de bloques"
+
+#: 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 "`socket'"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+# FIXME
+# se podría decir algo más decente para "weird" ... pero ¿qué?
+# ¿ no habitual ?  em
+# ¡Nchts! Prefiero extraño ... no habitual me suena muy difuso
+# siempre podemos poner escachifollado ;) ipg
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "fichero extraño"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: la opción '%s' es ambigua; posibilidades:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: la opción '-W %s' es ambigua\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: la opción '--%s' no admite ningún argumento\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: la opción '%c%s' no admite ningún argumento\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: la opción '--%s' requiere un argumento\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opción no reconocida '--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opción no reconocida '%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opción inválida -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: la opción requiere un argumento -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: la opción '-W %s' es ambigua\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: la opción '-W %s' no admite ningún argumento\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: la opción '-W %s' requiere un argumento\n"
@@ -163,38 +236,38 @@ msgstr "%s: la opción '-W %s' requiere un argumento\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Conseguido"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "No hay ninguna coincidencia"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 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:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Carácter de unión inválido"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Carácter de clase inválido"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Barra invertida al final"
 
@@ -240,51 +313,52 @@ 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:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Retro-referencia inválida"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ ó [^ desemparejados"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( ó \\( desemparejado"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ desemparejado"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "El contenido de \\{\\} no es válido"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Final de rango inválido"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memoria agotada"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Expresión regular precedente inválida"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Final prematuro de la expresión regular"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "La expresión regular es demasiado grande"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") ó \\) desemparejado"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "No hay ninguna expresión regular previa"
 
@@ -504,17 +578,17 @@ msgstr ""
 "Ayuda general sobre el uso de software de GNU: <http://www.gnu.org/gethelp/"
 ">\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Los ficheros %s y %s son distintos\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Los ficheros binarios %s y %s son distintos\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "No hay ningún carácter de nueva línea al final del fichero"
 
@@ -528,7 +602,7 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Pruebe '%s --help' para más información."
@@ -543,14 +617,12 @@ msgstr "valor --ignore-initial inválido '%s'"
 msgid "options -l and -s are incompatible"
 msgstr "las opciones -l y -s son incompatibles"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "la escritura falló"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "salida estándar"
 
@@ -617,7 +689,7 @@ 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)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -640,7 +712,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Si un FICHERO es '-' o no se especifica, lee la entrada estándar."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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"
@@ -651,27 +723,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "valor --bytes inválido '%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operando después de '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operando extra '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: fin de fichero encontrado en %s\n"
@@ -701,12 +773,12 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "longitud de contexto inválida '%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "este sistema no admite paginación"
@@ -720,78 +792,78 @@ msgstr "este sistema no admite paginación"
 # se refiere. la opción de etiqueta de fichero se ha especificado demasiadas
 # veces. O más cortito, dejarlo como está :) em+
 # Me parece que así está bien ...
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "demasiadas opciones de etiqueta de fichero"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ancho inválido '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "opciones de ancho conflictivas"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "longitud del horizonte inválida '%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamaño de tab inválido '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "opciones de tamaño de tab conflictivas"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "se ha especificado tanto --from-file como --to-file"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  produce un diff normal (predeterminado)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q  --brief                   indica sólo si los ficheros son diferentes o no"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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"
 
-#: src/diff.c:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed                      produce un script ed"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs                     produce un diff en formato RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            muestra en dos columnas"
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
@@ -799,30 +871,31 @@ msgstr ""
 "impresión\n"
 "                                    (por omisión 130)"
 
-#: src/diff.c:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   no muestra las líneas comunes"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETIQUETA          utiliza ETIQUETA en lugar del nombre del "
@@ -830,18 +903,18 @@ msgstr ""
 "                                (se puede repetir)"
 
 # Aquí a lo mejor también: la salida -> el resultado. sv
-#: src/diff.c:871
+#: src/diff.c:900
 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:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
@@ -849,7 +922,7 @@ msgstr ""
 "columnas\n"
 "                    de impresión (por omisión, 8)"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -867,53 +940,53 @@ 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:875
+#: src/diff.c:904
 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:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 compara recursivamente todos los "
 "subdirectorios"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            no sigue los enlaces simbólicos"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  trata los ficheros que no existan como vacíos"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "        --unidirectional-new-file   trata los ficheros originales que no "
 "existan\n"
 "                                    como vacíos"
 
-#: src/diff.c:881
+#: src/diff.c:910
 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"
 
-#: src/diff.c:882
+#: src/diff.c:911
 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"
 
-#: src/diff.c:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=PAT               excluye los ficheros que coincidan con PAT"
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
@@ -921,14 +994,14 @@ msgstr ""
 "alguna\n"
 "                                expresión regular de FICHERO"
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FICHERO     comienza por FICHERO cuando se comparan\n"
 "                                directorios"
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -936,7 +1009,7 @@ msgstr ""
 "    --from-file=FICHERO1        compara FICHERO1 con todos los operandos;\n"
 "                                  FICHERO1 puede ser un directorio"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -944,7 +1017,7 @@ msgstr ""
 "    --to-file=FICHERO2          compara todos los operandos con FICHERO2\n"
 "                                  FICHERO2 puede ser un directorio"
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
@@ -952,58 +1025,58 @@ msgstr ""
 "minúsculas\n"
 "                         en el contenido de los ficheros"
 
-#: src/diff.c:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          descarta los espacios en blanco"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 "-a, --text                      trata todos los ficheros como de tipo texto"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    lee y escribe los datos en modo binario"
 
-#: src/diff.c:905
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
@@ -1013,23 +1086,23 @@ msgstr ""
 # Propongo similar -> parecida. Ver gettext. sv
 # Hmmm ... prefiero similar. Antes estaba puesto `parecida' y la verdad,
 # no quedaba tan bien. ipg
-#: src/diff.c:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -1038,13 +1111,13 @@ msgstr ""
 "resultado\n"
 "    de diff, generalizando -D/--ifdef."
 
-#: src/diff.c:911
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -1073,7 +1146,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:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1087,7 +1160,7 @@ msgstr ""
 "el\n"
 "                                      número de línea de entrada"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1101,17 +1174,17 @@ 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:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
@@ -1119,80 +1192,106 @@ msgstr ""
 "son\n"
 "                         numerosos, pequeños y dispersos"
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  produce un diff normal (predeterminado)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               muestra esta ayuda y finaliza"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            informa de la versión y finaliza"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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'."
 
-#: src/diff.c:942
+#: src/diff.c:975
 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)."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Si un FICHERO es '-', lee la entrada estándar."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Modo de empleo: %s [OPCIÓN]... FICHEROS\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Compara FICHEROS línea por línea."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "la opción %s tiene el valor conflictivo '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "las especificaciones del estilo de salida son conflictivas"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ancho inválido '%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Sólo en %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "no se puede comparar '-' con un directorio"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "la opción -D no se puede usar con directorios"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, 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.
 # Por ejemplo, "texto C", "texto FORTRAN", etc.
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Los enlaces simbólicos %s y %s son distintos\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Los ficheros %s y %s son idénticos\n"
@@ -1211,7 +1310,7 @@ msgstr "opciones incompatibles"
 msgid "'-' specified for more than one input file"
 msgstr "se ha especificado '-' para más de un fichero de entrada"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "la lectura falló"
@@ -1381,34 +1480,34 @@ msgstr "error interno: tipo de diff inválido en process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff inválido; separador de cambio inválido"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff inválido; línea final incompleta"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "no se ha podido invocar al programa subsidiario '%s'"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 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:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "error interno: tipo de diff inválido pasado a la salida"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "el fichero de entrada ha menguado"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "no se pueden comparar los nombres de fichero '%s' y '%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: bucle de directorio recursivo"
@@ -1619,6 +1718,16 @@ msgstr ""
 "v:       Incluye líneas comunes verbosamente.\n"
 "q:       Salir.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: opción no reconocida '--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid ""
 #~ "-b  --ignore-space-change       ignore changes in the amount of white "
 #~ "space"
index ac7d95e..352931c 100644 (file)
Binary files a/po/fi.gmo and b/po/fi.gmo differ
index cc8093d..5a5b1ec 100644 (file)
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,19 +1,37 @@
 # Finnish translation of GNU diffutils.
-# Copyright © 2004 Free Software Foundation, Inc.
-# Lauri Nurmi <lanurmi@iki.fi>, 2002-2004.
+# This file is distributed under the same license as the diffutils package.
+# Copyright © 2016 Free Software Foundation, Inc.
+# Lauri Nurmi <lanurmi@iki.fi>, 2002-2004,2015-2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.7\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-04-19 14:36+03:00\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2016-05-26 21:28+0300\n"
 "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.8.7\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumentti %s on virheellinen %s:lle"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argumentti %s on virheellinen %s:lle"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -23,116 +41,169 @@ msgstr "ohjelmavirhe"
 msgid "stack overflow"
 msgstr "pinon ylivuoto"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Tuntematon järjestelmävirhe"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "tavallinen tyhjä tiedosto"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "tavallinen tiedosto"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "hakemisto"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "lohkolaite-erikoistiedosto"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "merkkilaite-erikoistiedosto"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "symbolinen linkki"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "pistoke"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "viestijono"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafori"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "jaettu muistiobjekti"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "tyypitetty muistiobjekti"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "lohkolaite-erikoistiedosto"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "merkkilaite-erikoistiedosto"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "lohkolaite-erikoistiedosto"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "merkkilaite-erikoistiedosto"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "outo tiedosto"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "lohkolaite-erikoistiedosto"
+
+#: 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 "pistoke"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "outo tiedosto"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: valitsin \"%s\" on moniselitteinen\n"
+msgstr "%s: valitsin ”%s” on moniselitteinen; vaihtoehdot:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valitsin ”-W %s” on moniselitteinen\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: valitsin \"--%s\" ei salli argumenttia\n"
+msgstr "%s: valitsin ”--%s” ei salli argumenttia\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: valitsin \"%c%s\" ei salli argumenttia\n"
+msgstr "%s: valitsin ”%c%s” ei salli argumenttia\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: valitsin \"%s\" vaatii argumentin\n"
+msgstr "%s: valitsin ”--%s” vaatii argumentin\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: tunnistamaton valitsin \"--%s\"\n"
+msgstr "%s: tunnistamaton valitsin ”--%s”\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: tunnistamaton valitsin \"%c%s\"\n"
+msgstr "%s: tunnistamaton valitsin ”%c%s”\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: virheellinen valitsin -- %c\n"
+msgstr "%s: virheellinen valitsin -- ”%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: valitsin vaatii argumentin -- %c\n"
+msgstr "%s: valitsin vaatii argumentin -- ”%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: valitsin \"-W %s\" on moniselitteinen\n"
+msgstr "%s: valitsin ”-W %s” on moniselitteinen\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: valitsin \"-W %s\" ei salli argumenttia\n"
+msgstr "%s: valitsin ”-W %s” ei salli argumenttia\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: valitsin \"%s\" vaatii argumentin\n"
+msgstr "%s: valitsin ”%s” vaatii argumentin\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -155,83 +226,84 @@ msgstr "%s: valitsin \"%s\" vaatii argumentin\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Onnistui"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Ei vastaavuutta"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Virheellinen säännöllinen lauseke"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Virheellinen vertailumerkki"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Virheellinen merkkiluokan nimi"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Kenoviiva lopussa"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Virheellinen takaisinviittaus"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Pariton [ tai [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Pariton ( tai \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Pariton \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Virheellinen \"\\{\\}\":n sisältö"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Virheellinen välin loppu"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Muisti lopussa"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Virheellinen edeltävä säännöllinen lauseke"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Ennenaikainen säännöllisen lausekkeen loppu"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Liian suuri säännöllinen lauseke"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Pariton ) tai \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Ei edellistä säännöllistä lauseketta"
 
@@ -241,50 +313,49 @@ msgstr "muisti lopussa"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "vakiosyöte"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "vakiotuloste"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "vakiovirhetuloste"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Tuntematon järjestelmävirhe"
+msgstr "tuntematon virta"
 
 #: lib/xfreopen.c:39
-#, c-format
+#, fuzzy, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "%s: Oikeuksien muuttaminen tilaan %s ei onnistu"
 
 #: lib/xstrtol-error.c:63
 #, fuzzy, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "virheellinen arvo \"%s\" valitsimelle --bytes"
+msgstr "argumentti %s on virheellinen %s:lle"
 
 #: lib/xstrtol-error.c:68
-#, c-format
+#, fuzzy, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "virheellinen loppuliite ”%.*s” liukulukuvakiolla"
 
 #: lib/xstrtol-error.c:72
-#, c-format
+#, fuzzy, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "lukumäärä %s on liian suuri"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Paketoinut %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Paketoinut %s\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
@@ -302,6 +373,12 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Lisenssi GPLv3+: GNU GPL versio 3 tai myöhempi <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Tämä on vapaa ohjelmisto; sitä saa vapaasti muuttaa ja levittää edelleen.\n"
+"Siinä määrin kuin laki sallii, TAKUUTA EI OLE.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:102
@@ -422,37 +499,40 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"Ilmoita ohjelmistovioista (englanniksi) osoitteeseen: %s\n"
 
 #: lib/version-etc.c:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Ilmoita %s-vioista (englanniksi) osoitteeseen %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s-kotisivu: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s-kotisivu: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
+"Yleisohjeita GNU-ohjelmistojen käyttöön: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Tiedostot %s ja %s eroavat\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binääritiedostot %s ja %s eroavat\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Ei rivinvaihtoa tiedoston lopussa"
 
@@ -464,31 +544,29 @@ msgstr "Torbjörn Granlund"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Kokeile \"%s --help\" saadaksesi lisää tietoa."
+msgstr "Komento ”%s --help” antaa lisää tietoa."
 
 #: src/cmp.c:137
 #, fuzzy, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "virheellinen arvo \"%s\" valitsimelle --ignore-initial"
+msgstr "virheellinen alkuarvo jäsenelle %qE"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "valitsimet -l ja -s eivät ole yhteensopivia"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "kirjoitus epäonnistui"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "vakiotuloste"
 
@@ -525,16 +603,15 @@ msgstr "-n RAJA   --bytes=RAJA  Vertaa korkeintaan RAJAn verran tavuja."
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      vaienna kaikki tavanomainen tuloste"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                  näytä tämä ohje ja poistu"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Näyttää versiotiedot."
+msgstr "-v, --version              näytä versiotiedot ja poistu"
 
 #: src/cmp.c:178
 #, c-format
@@ -546,17 +623,18 @@ msgid "Compare two files byte by byte."
 msgstr "Vertaa kahta tiedostoa tavu tavulta."
 
 #: src/cmp.c:182
-#, 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 ""
-"OHITA1 ja OHITA2 ovat jokaisessa tiedostossa ohitettavien tavujen määrä."
+"OHITA1 ja OHITA2 ovat jokaisen tiedostn alusta ohitettavien tavujen\n"
+"määrä (oletusarvo on nolla)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -569,42 +647,41 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824, sekä T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Jos TIEDOSTO on \"-\" tai puuttuu, luetaan vakiosyötteestä."
+msgstr "Jos TIEDOSTOa ei ole annettu, tai se on ”-”, luetaan vakiosyötettä."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "virheellinen arvo \"%s\" valitsimelle --bytes"
+msgstr "virheellinen arvo ”%s” valitsimelle --bytes"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "puuttuva operandi argumentin \"%s\" jälkeen"
+msgstr "puuttuva operandi argumentin ”%s” jälkeen"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "ylimääräinen operandi \"%s\""
+msgstr "ylimääräinen operandi ”%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s eroavat: tavu %s, rivi %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: Tiedoston %s loppu\n"
@@ -612,211 +689,214 @@ msgstr "cmp: Tiedoston %s loppu\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "virheellinen kontekstin pituus \"%s\""
+msgstr "virheellinen kontekstin pituus ”%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "tämä isäntä ei tue sivunumerointia"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "liian monta tiedostonimivalitsinta"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
 msgstr "virheellinen leveys \"%s\""
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "ristiriitaiset leveysvalinnat"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
 msgstr "virheellinen horisontin pituus \"%s\""
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
 msgstr "virheellinen sarkaimen koko \"%s\""
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "ristiriitaiset sarkaimen kokovalinnat"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "sekä valitsin --from-file että --to-file on määritetty"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Tulosta normaali diff."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Kertoo vain, eroavatko tiedostot."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-w MÄÄRÄ  --width=MÄÄRÄ  Tulosta enintään MÄÄRÄ (oletus 130) merkkiä riville."
 
-#: src/diff.c:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Tulosta ed-skripti."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Tulosta RCS-muotoinen diff."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w MÄÄRÄ  --width=MÄÄRÄ  Tulosta enintään MÄÄRÄ (oletus 130) merkkiä riville."
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column  Tulosta vain yhteisten rivien vasen palsta"
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  Älä tulosta yhteisiä rivejä."
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=TIEDOSTO1  Vertaa TIEDOSTO1:ä kaikkiin operandeihin. TIEDOSTO1 "
+"voi olla hakemisto."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Laajentaa sarkaimet välilyönneiksi tulosteessa."
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T  --initial-tab  Lisää sarkain rivien alkuun."
 
-#: src/diff.c:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=KOKO Sarkaimen koko on KOKO (oletus 8) merkkiä."
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l  --paginate  Ohjaa tuloste ohjelman \"pr\" läpi sivunumerointia varten."
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Vertaa löytyneitä alihakemistoja rekursiivisesti."
+msgstr ""
+"-r,  --recursive                 vertaa löytyneitä alihakemistoja "
+"rekursiivisesti"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Käsittele puuttuvia tiedostoja tyhjinä."
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "--unidirectional-new-file  Käsittele puuttuvia tiedostoja tyhjinä."
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "--ignore-file-name-case  Älä huomioi kirjainkokoa tiedostojen nimiä "
 "verrattaessa."
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Kirjainkoko huomioidaan tiedostonimiä "
 "verrattaessa."
 
-#: src/diff.c:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x HAHMO  --exclude=HAHMO  Jätä pois tiedostot, jotka vastaavat HAHMOa."
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -824,7 +904,7 @@ msgstr ""
 "-X TIEDOSTO --exclude-from=TIEDOSTO  Jätä pois TIEDOSTOssa listatut "
 "tiedostot."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -832,7 +912,7 @@ msgstr ""
 "-S TIEDOSTO  --starting-file=TIEDOSTO  Aloita TIEDOSTOlla verrattaessa "
 "hakemistoja."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -841,7 +921,7 @@ msgstr ""
 "--from-file=TIEDOSTO1  Vertaa TIEDOSTO1:ä kaikkiin operandeihin. TIEDOSTO1 "
 "voi olla hakemisto."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -850,7 +930,7 @@ msgstr ""
 "--to-file=TIEDOSTO2  Vertaa kaikkia operandeja TIEDOSTO2:een. TIEDOSTO2 voi "
 "olla hakemisto."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
@@ -858,60 +938,54 @@ msgstr ""
 "-i  --ignore-case  Älä huomioi kirjainkokoa tiedostojen sisältöä "
 "verrattaessa."
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Älä huomioi sarkainten laajennuksesta johtuvia "
 "eroja."
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-white-space  Älä huomioi tyhjiä merkkejä."
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change  Älä huomioi tyhjistä merkeistä johtuvia eroja."
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-white-space  Ã\84lä huomioi tyhjiä merkkejä."
+msgstr "-w  --ignore-all-white-space  Ã¤lä huomioi tyhjiä merkkejä"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr ""
-"-B  --ignore-blank-lines  Älä huomioi tyhjistä riveistä johtuvia eroja."
+msgstr "-B  --ignore-blank-lines  älä huomioi tyhjistä riveistä johtuvia eroja"
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I SI  --ignore-matching-lines=SI  Älä huomioi eroavia rivejä, jotka "
 "vastaavat säännöllistä lauseketta."
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Käsittelee kaikki tiedostot tekstinä."
+msgstr "-a  --text                      käsittelee kaikki tiedostot tekstinä"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Poista lopussa oleva vaununpalautus syötteestä."
+msgstr "--strip-trailing-cr  poista vaununpalautus syötteen lopusta"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Lukee ja kirjoittaa dataa binääritilassa."
+msgstr "   --binary                     lue ja kirjoita dataa binääritilassa"
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -919,38 +993,35 @@ msgstr ""
 "-D NIMI  --ifdef=NIMI  Tulosta yhdistetty tiedosto näyttämään \"#ifdef NIMI"
 "\"-erot."
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--GTYYPPI-group-format=GMUOTO  Sama, muotoile GTYYPPIset syöteryhmät "
 "GMUOTOon."
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LMUOTO  Sama, muotoile kaikki syöterivit LMUOTOon."
+msgstr "    --line-format=LMUOTO   muotoile kaikki syöterivit LMUOTOon"
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYYPPI-line-format=MUOTO  Sama, muotoile LTYYPPIset syöterivit LMUOTOon."
+msgstr "    --line-format=LMUOTO   muotoile kaikki syöterivit LMUOTOon"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -979,7 +1050,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -992,7 +1063,7 @@ msgstr ""
 "    %l  rivin sisältö, mahdollinen edeltävä rivinvaihto poislukien\n"
 "    %[-][LEVEYS][.[TARKK]]{doxX}n syöterivin numero printf-tyylillä"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1006,19 +1077,19 @@ msgstr ""
 "    %c'C'  yksittäinen merkki C\n"
 "    %c'\\OOO'  yksittäinen merkki oktaalikoodilla OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  Yrittää löytää pienemmän määrän muutoksia."
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "--horizon-lines=MÄÄRÄ  Säilytä MÄÄRÄ riviä yhteisestä etu- ja "
 "jälkiliitteestä."
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1026,86 +1097,110 @@ msgstr ""
 "-H  --speed-large-files  Oleta suuret tiedostot, joissa pieniä muutoksia "
 "ympäri tiedoston."
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Tulosta normaali diff."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+#, fuzzy
+msgid "    --help               display this help and exit"
+msgstr "    --help                  näytä tämä ohje ja poistu"
+
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Näyttää versiotiedot."
+msgstr "-v, --version            näytä versiotiedot ja poistu"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
-msgstr ""
-"Jos valitsin --from-file tai --to-file on annettu, TIEDOSTOILLE ei ole "
-"rajoituksia."
+msgstr "Tiedoston lisääminen hakemiston %s ulkopuolelta epäonnistui"
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
-msgstr "Jos TIEDOSTO on \"-\", luetaan vakiosyötteestä."
+msgstr ""
+"\n"
+"Jos TIEDOSTOa ei ole annettu, tai se on ”-”, luetaan vakiosyötettä.\n"
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Käyttö: %s [VALITSIN]... TIEDOSTOT\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Vertaa tiedostoja rivi riviltä."
+msgstr "Vertaa TIEDOSTOja rivi riviltä."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "ristiriitainen arvo \"%2$s\" valitsimelle %1$s"
+msgstr "ristiriitaiset tyypit kohteelle %<%c%s%>:lle"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "ristiriitaiset tulostustyylin valinnat"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "virheellinen leveys \"%s\""
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Vain hakemistossa %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
-msgstr "ei voi verrata syötettä \"-\" hakemistoon"
+msgstr "hakemiston %s luominen ei onnistu"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "valitsin -D ei toimi hakemistojen kanssa"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Yhteiset alihakemistot: %s ja %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Tiedostot %s ja %s eroavat\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Tiedostot %s ja %s ovat identtiset\n"
@@ -1113,7 +1208,7 @@ msgstr "Tiedostot %s ja %s ovat identtiset\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Randy Smith"
 
 #: src/diff3.c:313
 #, c-format
@@ -1123,9 +1218,9 @@ msgstr "yhteensopimattomat valitsimet"
 #: src/diff3.c:353
 #, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "\"-\" on määritetty useammaksi kuin yhdeksi syötetiedostoksi"
+msgstr "Voidaan antaa vain yksi syötetiedosto!\n"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lukeminen epäonnistui"
@@ -1179,14 +1274,13 @@ msgid ""
 msgstr ""
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Käsittelee kaikki tiedostot tekstinä."
+msgstr "-a, --text                  käsittele kaikki tiedostot tekstinä"
 
 #: src/diff3.c:442
 #, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Poista lopussa oleva vaununpalautus syötteestä."
+msgstr "--strip-trailing-cr  poista vaununpalautus syötteen lopusta"
 
 #: src/diff3.c:443
 #, fuzzy
@@ -1206,12 +1300,11 @@ msgstr ""
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  näytä tämä ohje ja poistu"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Näyttää versiotiedot."
+msgstr "-v, --version              näytä versiotiedot ja poistu"
 
 #: src/diff3.c:458
 #, c-format
@@ -1258,41 +1351,41 @@ msgstr "sisäinen virhe: virheellinen diff-tyyppi funktiossa process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "virheellinen diff-muoto; virheellinen muutoserotin"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "virheellinen diff-muoto; viimeinen rivi vajaa"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "apuohjelmaa \"%s\" ei voitu käynnistää"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "virheellinen diff-muoto; väärät rivin alkumerkit"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "sisäinen virhe: virheellinen diff-muoto välitetty tulosteeseen"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "syötetiedosto kutistui"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "ei voi verrata tiedostonimiä \"%s\" ja \"%s\""
+msgstr "tiedostonimiä %s ja %s ei voi vertailla"
 
-#: src/dir.c:209
-#, c-format
+#: src/dir.c:225
+#, fuzzy, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: syöte sisältää silmukan:"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
 #, fuzzy
@@ -1328,15 +1421,13 @@ msgstr ""
 "-b  --ignore-space-change  Älä huomioi tyhjistä merkeistä johtuvia eroja."
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-white  Älä huomioi tyhjiä merkkejä."
+msgstr "-W, --ignore-all-space        älä huomioi tyhjiä merkkejä"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines  Älä huomioi tyhjistä riveistä johtuvia eroja."
+"-B, --ignore-blank-lines      älä huomioi tyhjistä riveistä johtuvia eroja"
 
 #: src/sdiff.c:181
 #, fuzzy
@@ -1346,14 +1437,12 @@ msgstr ""
 "vastaavat säännöllistä lauseketta."
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Poista lopussa oleva vaununpalautus syötteestä."
+msgstr "    --strip-trailing-cr       poista vaununpalautus syötteen lopusta"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Käsittelee kaikki tiedostot tekstinä."
+msgstr "-a  --text                    käsittele kaikki tiedostot tekstinä"
 
 #: src/sdiff.c:185
 #, fuzzy
@@ -1404,12 +1493,11 @@ msgstr "--diff-program=OHJELMA  Käytä OHJELMAa tiedostojen vertaamiseen."
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                  näytä tämä ohje ja poistu"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Näyttää versiotiedot."
+msgstr "-v  --version                näytä versiotiedot ja poistu"
 
 #: src/sdiff.c:206
 #, c-format
@@ -1417,9 +1505,9 @@ msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Käyttö: %s [VALITSIN]...TIEDOSTO1 TIEDOSTO2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Tiedostojen erojen yhdistäminen vierekkäisillä palstoilla."
+msgstr ""
+"Tiedostojen TIED1 ja TIED2 erojen yhdistäminen vierekkäisillä palstoilla."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
@@ -1430,7 +1518,6 @@ msgid "both files to be compared are directories"
 msgstr "molemmat vertailtavat tiedostot ovat hakemistoja"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1445,15 +1532,25 @@ msgid ""
 msgstr ""
 "ed:\tMuokkaa ja käytä molempia versioita, kumpaankin otsake.\n"
 "eb:\tMuokkaa ja käytä molempia versioita.\n"
-"el:\tMuokkaa ja käytä vasenta versiota.\n"
-"er:\tMuokkaa ja käytä oikeata versiota.\n"
-"e:\tMuokkaa uusi versio.\n"
-"l:\tKäytä vasenta versiota.\n"
-"r:\tKäytä oikeata versiota.\n"
-"s:\tSisällytä yhteiset rivit automaattisesti, ei ilmoitusta.\n"
-"v:\tSisällytä yhteiset rivit automaattisesti ja ilmoita niistä.\n"
+"el tai e1:\tMuokkaa ja käytä vasenta versiota.\n"
+"er tai e2:\tMuokkaa ja käytä oikeata versiota.\n"
+"e:\tHylkää molemmat versiot ja muokkaa uusi.\n"
+"l tai 1:\tKäytä vasenta versiota.\n"
+"r tai 2:\tKäytä oikeata versiota.\n"
+"s:\tSisällytä yhteiset rivit automaattisesti, ilmoittamatta.\n"
+"v:\tSisällytä yhteiset rivit automaattisesti, ilmoittaen.\n"
 "q:\tLopeta.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: tunnistamaton valitsin ”--%s”\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: virheellinen valitsin -- %c\n"
 
index 3ce30ac..e86273c 100644 (file)
Binary files a/po/fr.gmo and b/po/fr.gmo differ
index 8c9a57a..55163b2 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-10-31 08:16+0100\n"
 "Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -19,6 +19,21 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Lokalize 1.0\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument pour %s%s pas valable: « %s »"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argument pour %s%s pas valable: « %s »"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "erreur du programme"
@@ -27,113 +42,166 @@ msgstr "erreur du programme"
 msgid "stack overflow"
 msgstr "débordement de pile"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Erreur système inconnue"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "fichier régulier vide"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "fichier régulier"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "répertoire"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "fichier spécial-blocs"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "fichier spécial-caractères"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "« fifo »"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "lien symbolique"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "« socket »"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "queue de messages"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "sémaphore"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objet en mémoire partagée"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "objet mémoire typé"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "fichier spécial-blocs"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "fichier spécial-caractères"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "fichier spécial-blocs"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "fichier spécial-caractères"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "fichier bizarre"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "fichier spécial-blocs"
+
+#: 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 "« socket »"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "fichier bizarre"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: l'option « %s » est ambiguë ; les possibilités sont :"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'option « -W %s » est ambiguë\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: l'option « --%s » n'accepte aucun argument\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: l'option « %c%s » n'accepte aucun argument\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: l'option « --%s » requiert un argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: l'option « --%s » n'est pas reconnue\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: l'option « %c%s » n'est pas reconnue\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: l'option -- « %c » est invalide\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: l'option -- « %c » requiert un argument\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: l'option « -W %s » est ambiguë\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'option « -W %s » n'accepte aucun argument.\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: l'option « -W %s » requiert un argument\n"
@@ -159,83 +227,84 @@ msgstr "%s: l'option « -W %s » requiert un argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "« "
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr " »"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Succès"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Pas de concordance"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "L'expression régulière est invalide"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Le caractère de regroupement est invalide"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Le nom d'un ensemble de caractères est invalide"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Barre oblique inverse à la fin"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "La référence arrière est invalide"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ or [^ sans vis-à-vis"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr " ( ou \\( sans vis-à-vis"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ sans vis-à-vis"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Le contenu de \\{\\} est invalide"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "La fin d'intervalle est invalide"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Mémoire épuisée"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "L'expression régulière précédente est invalide"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Fin prématurée de l'expression régulière"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Expression régulière trop grande"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") or \\) sans vis-à-vis"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "N'est pas précédé d'une expression régulière"
 
@@ -457,17 +526,17 @@ msgstr ""
 "Aide générale sur l'utilisation des logiciels GNU: <http://www.gnu.org/"
 "gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Les fichiers %s et %s sont différents\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Les fichiers binaires %s et %s sont différents\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Pas de fin de ligne à la fin du fichier"
 
@@ -481,7 +550,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Utilisez « %s --help » pour en savoir d'avantage."
@@ -496,14 +565,12 @@ msgstr "valeur invalide pour --ignore-initial: « %s »"
 msgid "options -l and -s are incompatible"
 msgstr "options -l et -s sont incompatibles"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "échec d'écriture"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "sortie standard"
 
@@ -567,7 +634,7 @@ msgstr ""
 "escamoter\n"
 "au début de chaque fichier (zéro par défaut)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -589,7 +656,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 "
@@ -600,27 +667,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "valeur invalide pour --bytes: « %s »"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "opérande manquante après « %s »"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "opérande supplémentaire « %s »"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: Fin-de-fichier (EOF) sur %s\n"
@@ -650,216 +717,217 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "longueur du contexte invalide « %s »"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "La pagination n'est pas supporté sur cette machine"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "Trop de noms de fichiers dans les options"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "largeur invalide « %s »"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "options de largeur conflictuelles"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "longueur d'horizon invalide « %s »"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "taille de tabulation invalide « %s »"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "options conflictuelles de taille de tabulation"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file et --to-file ont été spécifiés ensemble"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  Produire un « diff » en format normal (par "
 "défaut)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q, --brief                   Indiquer seulement si les fichiers diffèrent"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      Générer un script pour « ed »"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 "-n, --rcs                     Générer un fichier « diff » au format RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            Affichage sur deux colonnes"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   Ne pas afficher les lignes identiques"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ÉTIQUETTE        Utiliser ÉTIQUETTE au lieu du nom de fichier\n"
 "                                (peut être répété)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 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:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                Relayer la sortie à « pr » afin de la paginer"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive               Comparer récursivement les sous-répertoires "
 "trouvés"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            Ne pas suivre les liens symboliques"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                Traiter les fichiers absents comme des "
 "fichiers vides"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file Traiter les premiers fichiers absents comme "
 "vides"
 
-#: src/diff.c:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 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:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -867,7 +935,7 @@ msgstr ""
 "    --from-file=FICHIER1     Comparer le FICHIER1 à toutes les opérandes.\n"
 "                                  FICHIER1 peut être un répertoire"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -875,86 +943,86 @@ msgstr ""
 "    --to-file=FICHIER2       Comparer toutes les opérandes à FICHIER2.\n"
 "                                  FICHIER2 peut être un répertoire"
 
-#: src/diff.c:891
+#: src/diff.c:920
 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:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        Ignorer tout blanc d'espacement"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 "-a, --text                    Traiter tous les fichiers comme des textes"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                  Lire et écrire les données en binaire"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -962,13 +1030,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:911
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -998,7 +1066,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1    %(A=B?T:E)  si A égal B alors T sinon E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1011,7 +1079,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:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1025,101 +1093,129 @@ 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:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"    --normal                  Produire un « diff » en format normal (par "
+"défaut)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help                    Afficher cette aide et terminer"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr ""
 "-v, --version                 Afficher le nom et la version du logiciel et "
 "terminer"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Usage: %s [OPTION]... FICHIERS\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Comparer les fichiers ligne par ligne."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valeur conflictuelle de l'option %s: « %s »"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "options de style de sortie conflictuelles"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "largeur invalide « %s »"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Seulement dans %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "ne peut comparer « - » avec un répertoire"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "L'option -D ne traite pas les répertoires"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Les sous-répertoires %s et %s sont identiques\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Les liens symboliques %s et %s sont différents\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Les fichiers %s et %s sont identiques\n"
@@ -1138,7 +1234,7 @@ msgstr "options incompatibles"
 msgid "'-' specified for more than one input file"
 msgstr "« - » fourni pour plus d'un fichier d'entrée"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lecture non-réussie"
@@ -1297,34 +1393,34 @@ msgstr "erreur interne: type de « diff » invalide dans process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "format de « diff » invalide ; séparateur de changement invalide"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "format de « diff » invalide ; dernière ligne incomplète"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "programme subsidiaire « %s » n'a pu être invoqué"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 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:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "erreur interne : type de « diff » invalide fourni en sortie"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "le fichier d'entrée a rétréci"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ne peut comparer les noms de fichier « %s » et « %s »"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: boucle récursive dans le répertoire"
@@ -1488,6 +1584,16 @@ msgstr ""
 "v:\tInclure les lignes identiques et le signaler.\n"
 "q:\tQuitter.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: l'option « --%s » n'est pas reconnue\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SAUT1:SAUT2        --ignore-initial=SAUT1:SAUT2"
 
index f60d223..4a4e016 100644 (file)
Binary files a/po/ga.gmo and b/po/ga.gmo differ
index 6ab8bf0..6057839 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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
@@ -16,6 +16,21 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "luach neamhbhailí --bytes `%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "luach neamhbhailí --bytes `%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "earráid chláir"
@@ -24,115 +39,168 @@ msgstr "earr
 msgid "stack overflow"
 msgstr "cruach thar maoil"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Earráid chórais anaithnid"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "gnáthchomhad folamh"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "gnáthchomhad"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "comhadlann"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "comhad speisialta den chineál `bloc'"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "comhad speisialta den chineál `carachtar'"
-
-# `TITA' ?! -KPS
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "nasc siombalach"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soicéad"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "ciú teachtaireachta"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "séamafór"
 
 # FARF --KPS
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "comhad comhchuimhne"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "comhad cuimhne le cineál"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "comhad speisialta den chineál `bloc'"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "comhad speisialta den chineál `carachtar'"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+# `TITA' ?! -KPS
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "fifo"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "comhad speisialta den chineál `bloc'"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "comhad speisialta den chineál `carachtar'"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "comhad aisteach"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "comhad speisialta den chineál `bloc'"
+
+#: 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 "soicéad"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "comhad aisteach"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: Tá an rogha `%s' débhríoch\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Tá an rogha `-W %s' débhríoch\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `--%s'\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `%c%s'\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: ní foláir argóint don rogha `%s'\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: rogha anaithnid `--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: rogha anaithnid `%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: rogha neamhbhailí -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: ní foláir argóint don rogha -- %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: Tá an rogha `-W %s' débhríoch\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha `-W %s'\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: ní foláir argóint don rogha `%s'\n"
@@ -158,87 +226,88 @@ msgstr "%s: n
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 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:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Níl a leithéid ann"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Slonn ionadaíochta neamhbhailí"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Carachtar cóimheasa neamhbhailí"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Aicme charachtair neamhbhailí"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Cúlslais ag deireadh"
 
 # #-#-#-#-#  sed-4.1.1.ga.po (sed 4.1.1)  #-#-#-#-#
 # coinage - KPS
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Cúltagairt neamhbhailí"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ nó [^ corr"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( nó \\( corr"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ corr"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Ábhar neamhbhailí idir \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Deireadh raoin neamhbhailí"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Cuimhne ídithe"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Is neamhbhailí an slonn ionadaíochta roimhe seo"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Deireadh le slonn ionadaíochta gan choinne"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Slonn ionadaíochta rómhór"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") nó \\) corr"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Níl aon slonn ionadaíochta roimhe seo"
 
@@ -448,17 +517,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Tá difríocht idir na comhaid %s agus %s\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, 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:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Gan líne nua ag an chomhadchríoch"
 
@@ -472,7 +541,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil."
@@ -487,14 +556,12 @@ msgstr "luach neamhbhail
 msgid "options -l and -s are incompatible"
 msgstr "Níl na roghanna -l agus -s comhoiriúnach"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "teipeadh ag scríobh"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "aschur caighdeánach"
 
@@ -559,7 +626,7 @@ msgid ""
 msgstr ""
 "Is éard atá i SCIP1 agus SCIP2 ná líonta na mbeart a scipeáil i ngach comhad."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -579,7 +646,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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."
 
@@ -588,27 +655,27 @@ msgstr "St
 msgid "invalid --bytes value '%s'"
 msgstr "luach neamhbhailí --bytes `%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "ní foláir argóint i ndiaidh `%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "oibreann breise `%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF ar %s\n"
@@ -638,189 +705,191 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "Fad neamhbhailí comhthéacs `%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, 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:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "an iomarca argóintí do lipéid chomhaid"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "leithead neamhbhailí `%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "roghanna leithid contrártha"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "fad léaslíne neamhbhailí `%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tá an mhéid tháib `%s' neamhbhailí"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "Roghanna tábmhéid contrártha"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "tugadh --from-file agus --to-file lena chéile"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Aschuir diff coitianta."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Ná taispeáin ach difriúil nó nach ea."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, 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:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Aschuir script `ed'."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Aschuir diff i gcruth RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, 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:863
+#: src/diff.c:892
 #, 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:864
+#: src/diff.c:893
 #, 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:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=COMHAD Cuir COMHAD (nó comhadlann) i gcomparáid le gach oibreann."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, 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:872
+#: src/diff.c:901
 #, 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:873
+#: src/diff.c:902
 #, 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:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  uimhrigh leathanaigh le `pr'."
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive  Cuir fochomhadlanna i gcomparáid go hathchúrsach."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, 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:880
+#: src/diff.c:909
 #, 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:881
+#: src/diff.c:910
 #, 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:882
+#: src/diff.c:911
 #, 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:883
+#: src/diff.c:912
 #, 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:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -829,7 +898,7 @@ msgstr ""
 "haon\n"
 "                                    slonn ionadaíochta as an CHOMHAD."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -837,7 +906,7 @@ msgstr ""
 "-S COMHAD --starting-file=COMHAD Tosaigh le COMHAD agus comhadlanna á "
 "gcóimheas."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -845,7 +914,7 @@ msgid ""
 msgstr ""
 "--from-file=COMHAD Cuir COMHAD (nó comhadlann) i gcomparáid le gach oibreann."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -853,41 +922,41 @@ msgid ""
 msgstr ""
 "--to-file=COMHAD Cuir gach oibreann i gcomparáid le COMHAD (nó comhadlann)."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, 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:892
+#: src/diff.c:921
 #, 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:893
+#: src/diff.c:922
 #, 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:894
+#: src/diff.c:923
 #, 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:895
+#: src/diff.c:924
 #, 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:896
+#: src/diff.c:925
 #, 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:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
@@ -895,23 +964,23 @@ msgstr ""
 "comhoiriúnach\n"
 "                                     leis an slonn SI."
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Caith le gach comhad mar théacschomhad."
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, 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:902
+#: src/diff.c:931
 #, 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:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -919,35 +988,35 @@ msgstr ""
 "-D AINM  --ifdef=AINM  Taispeáin comhad cumaiscthe chun na diff-aí\n"
 "                                `#ifdef AINM' a léiriú"
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, 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:907
+#: src/diff.c:936
 #, 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:908
+#: src/diff.c:937
 #, 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, 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:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -975,7 +1044,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -988,7 +1057,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:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1002,102 +1071,127 @@ msgstr ""
 "    %c'C'  an carachtar litriúil C\n"
 "    %c'\\OOO'  an carachtar le cód ochtnártha OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, 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:935
+#: src/diff.c:964
 #, 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:936
+#: src/diff.c:965
 #, 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Aschuir diff coitianta."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Taispeáin eolas faoin leagan."
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Úsáid: %s [ROGHA]... COMHAID\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Déan comparáid idir na comhaid, líne ar líne."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "luach contrártha don rogha %s: `%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "roghanna contrártha le haghaidh na stíle aschuir"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "leithead neamhbhailí `%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "I %s amháin: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "ní féidir `-' a chur i gcomparáid le comhadlann"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "Níl an rogha -D ar fáil do chomhadlanna"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Fochomhadlanna i gcoitianta: %s agus %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, 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:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Is comhionann iad na comhaid %s agus %s\n"
@@ -1117,7 +1211,7 @@ msgstr "roghanna neamh-chomhoiri
 msgid "'-' specified for more than one input file"
 msgstr "bhí `-' tugtha le haghaidh níos mó ná inchomhad amháin"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "theip ar léamh"
@@ -1255,35 +1349,35 @@ msgstr "earr
 msgid "invalid diff format; invalid change separator"
 msgstr "formáid diff neamhbhailí; teorantóir neamhbhailí idir athruithe"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "formáid neamhbhailí diff; líne deiridh neamhiomlán"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, 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:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formáid neamhbhailí diff; carachtair mhíchearta ag tosach na líne"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 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:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "crapadh an t-inchomhad"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, 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:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1453,6 +1547,16 @@ msgstr ""
 "v:\tCuir comhlínte san áireamh go foclach.\n"
 "q:\tScoir.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: rogha anaithnid `--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: rogha neamhcheadaithe -- %c\n"
 
index ad6a870..07d4d1c 100644 (file)
Binary files a/po/gl.gmo and b/po/gl.gmo differ
index 26c38c0..29f6210 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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
@@ -18,6 +18,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "o argumento «%s» de %s%s é incorrecto"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "o argumento «%s» de %s%s é incorrecto"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "erro do programa"
@@ -26,113 +41,166 @@ msgstr "erro do programa"
 msgid "stack overflow"
 msgstr "desbordamento da pila"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Produciuse un erro descoñecido do sistema"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "ficheiro regular baleiro"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "ficheiro regular"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "directorio"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "ficheiro especial de bloques"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "ficheiro especial de caracteres"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "ligazón simbólica"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "cola de mensaxes"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semáforo"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "obxecto de memoria compartida"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "obxecto de memoria con tipo"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "ficheiro especial de bloques"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "ficheiro especial de caracteres"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "ficheiro especial de bloques"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "ficheiro especial de caracteres"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "ficheiro estraño"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "ficheiro especial de bloques"
+
+#: 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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "ficheiro estraño"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "'%s' está danado. A liña %d na sección Opción é incorrecta"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a opción «-W %s» é ambigua\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: a opción «--%s» non permite un argumento\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: a opción «%c%s» non permite un argumento\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: a opción «--%s» require un argumento\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: non se recoñece a opción «--%s»\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: non se recoñece a opción «%c%s»\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opción incorrecta -- «%c»\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: a opción require un argumento -- «%c»\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: a opción «-W %s» é ambigua\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: a opción «-W %s» non permite un argumento\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: a opción «-W %s» require un argumento\n"
@@ -158,83 +226,84 @@ msgstr "%s: a opción «-W %s» require un argumento\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "«"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "»"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Correcto"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Non hai coincidencias"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Expresión regular incorrecta"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Carácter de ordenamento incorrecto"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nome da clase de caracteres incorrecto"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Barra invertida ao final"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Referencia cara a atrás incorrecta"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ ou [^ non emparellado"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( ou \\( non emparellado"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ non emparellado"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "O contido entre \\{\\} non é correcto"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Final do rango incorrecto"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memoria esgotada"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Expresión regular precedente incorrecta"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Final prematura da expresión regular"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Expresión regular demasiado grande"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") ou \\) non emparellado"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Non hai unha expresión regular anterior"
 
@@ -451,17 +520,17 @@ msgstr "%s páxina web: <http://www.gnu.org/software/%s/>\n"
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Axuda xeral ao usar software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Os ficheiros %s e %s son diferentes\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Os ficheiros binarios %s e %s son diferentes\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Non hai un salto de liña na fin da liña"
 
@@ -475,7 +544,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Probe «%s --help» para obter máis información."
@@ -490,14 +559,12 @@ msgstr "valor de --ignore-initial «%s» non válido"
 msgid "options -l and -s are incompatible"
 msgstr "as opcións -l e -s son incompatíbeis"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "fallou a escritura"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "saída estándar"
 
@@ -560,7 +627,7 @@ msgid ""
 "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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -580,7 +647,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 "
@@ -591,27 +658,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "valor de --bytes «%s» non válido"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "falta un operando despois de «%s»"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "operando «%s» sobrante"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: Fin de ficheiro en %s\n"
@@ -641,139 +708,142 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "lonxitude do contexto «%s» non válida"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "a paxinación non está admitida nesta máquina"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "demasiadas opcións de etiquetas de ficheiro"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "largo «%s» non válido"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "opcións de largura conflitivas"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "lonxitude do horizonte «%s» non válida"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "tamaño de tabulación «%s» non válido"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "opcións de tamaño de tabulación conflitivas"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "Especificáronse --from-file e --to-file ao mesmo tempo"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "Aparencia predefinida no modo normal"
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, 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:856
+#: src/diff.c:885
 #, 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, 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:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "Gardar a saída da consola de Script-Fu"
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Producir un diff en formato RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, 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:863
+#: src/diff.c:892
 #, 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:864
+#: src/diff.c:893
 #, 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:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=FICH1  Comparar FICH1 con todos os operandos. Pode ser "
+"directorio."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, 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:872
+#: src/diff.c:901
 #, 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:873
+#: src/diff.c:902
 #, 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:874
+#: src/diff.c:903
 #, fuzzy
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
@@ -781,53 +851,53 @@ msgstr ""
 "--suppress-blank-empty  Suprime espazos ou tabuladores antes dunha liña "
 "baleira."
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, 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:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive  Comparar recursivamente os subdirectorios que se atopen."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Tratar os ficheiros ausentes como baleiros."
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, 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:881
+#: src/diff.c:910
 #, 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:882
+#: src/diff.c:911
 #, 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:883
+#: src/diff.c:912
 #, 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:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -835,14 +905,14 @@ msgstr ""
 "-X FICH  --exclude-from=FICH  Excluír ficheiros que coinciden con algún\r\n"
 "                                modelo do FICHeiro."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, 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:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -851,7 +921,7 @@ msgstr ""
 "--from-file=FICH1  Comparar FICH1 con todos os operandos. Pode ser "
 "directorio."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -860,36 +930,36 @@ msgstr ""
 "--to-file=FICH2  Comparar todos os operandos con FICH2. Pode ser un "
 "directorio."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, 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:892
+#: src/diff.c:921
 #, 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:893
+#: src/diff.c:922
 #, 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:894
+#: src/diff.c:923
 #, 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:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "Todo visíbel (ignorar patrón)"
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
@@ -897,7 +967,7 @@ msgstr ""
 "-B  --ignore-blank-lines  Ignorar os cambios que teñan todas as liñas en "
 "branco"
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
@@ -905,31 +975,31 @@ msgstr ""
 "todas as liñas\r\n"
 "                                     conteñan EXPR-REG."
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Tratar todos os ficheiros como texto"
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, 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:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Ler e escribir datos en modo binario."
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, 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:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
@@ -937,14 +1007,14 @@ msgstr ""
 "\r\n"
 "                             con GFMT."
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, 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:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
@@ -952,20 +1022,20 @@ msgstr ""
 "\r\n"
 "                            con LFMT."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, 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:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -995,7 +1065,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -1008,7 +1078,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:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1022,17 +1092,17 @@ msgstr ""
 "    %c«C»  o carácter C\n"
 "    %c«\\OOO»  o carácter de código octal OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, 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:935
+#: src/diff.c:964
 #, 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:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1040,84 +1110,109 @@ msgstr ""
 "-H  --speed-large-files  Asumir ficheiros longos e pequenos cambios "
 "dispersos."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "Aparencia predefinida no modo normal"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "Mostrar información da versión e saír"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPCIÓN]... FICHEIROS\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Comparar os ficheiros liña a liña."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "valor «%1$s» da opción %2$s conflitivo"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "opcións de estilo da saída conflitivas"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "largo «%s» non válido"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Só en %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "non se pode comparar «-» cun directorio"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "A opción -D non está admitida con directorios"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectorios comúns: %s e %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Os ficheiros %s e %s son diferentes\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Os ficheiros %s e %s son idénticos\n"
@@ -1137,7 +1232,7 @@ msgstr "opcións incompatíbeis"
 msgid "'-' specified for more than one input file"
 msgstr "Especificouse «-» para máis dun ficheiro de entrada"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "fallou a lectura"
@@ -1277,33 +1372,33 @@ msgstr "erro interno: tipo de diff non válido en process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "formato de diff non válido; separador de cambios non válido"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "formato de diff non válido: última liña incompleta"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "non foi posíbel invocar o programa subsidiario «%s»"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 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:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "erro interno_ tipo de diff non válido pasado á saída"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "o ficheiro de entrada minguou"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "non se poden comparar os ficheiros «%s» e «%s»"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: bucle de directorio recursivo"
@@ -1475,6 +1570,16 @@ msgstr ""
 "v:       Inclúe liñas comúns de xeito detallado.\n"
 "q:       Saír.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: non se recoñece a opción «--%s»\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i N1:N2  --ignore-initial=N1:N2"
 
index 95092b4..825edea 100644 (file)
Binary files a/po/he.gmo and b/po/he.gmo differ
index 4eea493..1cdb268 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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
@@ -15,6 +15,21 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "--bytes ïééôàî øåáò `%s' éåâù êøò"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "--bytes ïééôàî øåáò `%s' éåâù êøò"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "úéðëúá äøåîç äì÷ú"
@@ -23,113 +38,166 @@ msgstr "
 msgid "stack overflow"
 msgstr "úéðñçî úùéìâ"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "ääåæî-éúìá äì÷ú"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "÷éø õáå÷"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "õáå÷"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "äé÷éú"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "íé÷åìá ï÷úä õáå÷"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "íéåú ï÷úä õáå÷"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo õáå÷"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "éìåáîéñ øåùé÷"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "ò÷ù"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "úåòãåä øåú"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "øåôîñ"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "óúåùî ïåøëæ è÷ééáåà"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "âååéñ ìòá ïåøëæ è÷ééáåà"
 
-#: lib/file-type.c:70
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "íé÷åìá ï÷úä õáå÷"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "íéåú ï÷úä õáå÷"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "øæåî õáå÷"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `%s' ïééôàî\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `-W %s' ïééôàî\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `--%s' ïééôàî\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `%c%s' ïééôàî\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s úéðëú øåáò `--%s' ääåæî-éúìá ïééôàî\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s úéðëú øåáò `%c%s' ääåæî-éúìá ïééôàî\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s úéðëú øåáò éåâù ïééôàî -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: èðîåâøà áééçî ïééôàî -- %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s úéðëú øåáò éòîùî-ãç åðéà `-W %s' ïééôàî\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà ìá÷î åðéà `-W %s' ïééôàî\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s úéðëú øåáò èðîåâøà áééçî `%s' ïééôàî\n"
@@ -155,83 +223,84 @@ msgstr "%s 
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "äçìöä"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "äîéàúî úæåøçî äàöîð àì"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "éåâù éøìåâø éåèéá"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "òåãé-éúìá øåãéñ åú"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "íéåú úöåá÷ ìù øëåî-éúìá íù"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "`\\' éøåçà ïñëåìá íééúñî éøìåâø éåèéá"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "íãå÷ éåèéá-úúì äéåâù äééðôä"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "âåæ-ïá åì ïéàù [^ åà ["
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "âåæ-ïá åì ïéàù \\( åà ("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "âåæ-ïá åì ïéàù \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} êåúá éåâù äðáî"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "íéåú íåçú ìù äéåâù äøãâä"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "ïåøëæä øîâð"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "íéé÷ åðéà åà éåâù íãå÷ éøìåâø éåèéá"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "éãî íã÷åî íééúñî éøìåâø éåèéá"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "éãî áëøåî åà ìåãâ éøìåâø éåèéá"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "âåæ-ïá åì ïéàù \\) åà )"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "íãå÷ éøìåâø éåèéá ïéà"
 
@@ -424,17 +493,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íééøðéá íéöá÷\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "õáå÷ä óåñá äùãç-äøåù åú øñç"
 
@@ -448,7 +517,7 @@ msgstr ""
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr ".øúåé áø òãéî úâöäì `%s --help' ùé÷äì äñð"
@@ -463,14 +532,12 @@ msgstr "--ignore-initial 
 msgid "options -l and -s are incompatible"
 msgstr "äæ úà äæ íéøúåñ -s-å -l íéðééôàîä"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "äáéúëá äì÷ú"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "éð÷ú èìô õåøòì"
 
@@ -531,7 +598,7 @@ msgid ""
 "at the beginning of each file (zero by default)."
 msgstr "      .íéöá÷äî ãçà ìëá âìãì ùé íäéìò íéúáä éøôñî íä SKIP2-å SKIP1"
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -551,7 +618,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "             .éð÷ú èì÷ õåøòî àø÷ ,ïééåöî åðéà åà `-' åðéä FILE íà"
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 
@@ -560,27 +627,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "--bytes ïééôàî øåáò `%s' éåâù êøò"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s' éøçà øñç èðîåâøà"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "`%s' éøçà øúåéî èðîåâøà"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s-å %s íéöá÷ä ïéá %s úéá ,%s äøåùî ìçä éðåù\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: %s õáå÷ óåñ\n"
@@ -610,199 +677,201 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "`%s' éåâù øù÷ä êøåà"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "åæ úëøòîá èìôä ãåîéòá äëéîú ïéà"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "íéöá÷ úéååú øåáò -L éðééôàî éãî øúåé"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "`%s' éåâù äøåù áçåø"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "íéøúåñ äøåù áçåø éðééôàî"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "--horizon-lines ïééôàîá `%s' éåâù úåøåù øôñî"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "`%s' éåâù Tab áçåø"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "íéøúåñ Tab áçåø éðééôàî"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--to-file ïäå --from-file ïä úðééö"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "                   .ìéâø èîøåôá íééåðéù ÷ôä      --normal"
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "                   .íéðåù íéöá÷ä íà øåîà ÷ø  -q  --brief"
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "                        .íéäæ íéöá÷ ìò çååã  -s  --report-identical-files"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, 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:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "             .ed êøåò øåáò úåàøåä úîéùø ÷ôä  -e  --ed"
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "                    .RCS èîøåôá íééåðéù ÷ôä  -n  --rcs"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ".äøåùì (130 ç\"îøá) íéååú NUM øúåéä ìëì âöä  -w NUM  --width=NUM"
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "         .úéìàîùä úà ÷ø âöä ,úåäæ úåøåùä íà  -l  --left-column"
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 "                    .úåäæ úåøåù ììë âéöú ìà  -s  --suppress-common-lines"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+".äé÷éú úåéäì ìåëé FILE1 .íéèðîåâøàä øàù ìëì FILE1 äååùä  --from-file=FILE1"
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "                .èìôá íéçååøì TAB éååú êåôä  -t  --expand-tabs"
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "             .äøåùä éðôì TAB \"ò íé-TAB øùé  -T  --initial-tab"
 
-#: src/diff.c:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "                  .(8 ç\"îøá) úåãåîò NUM ìë Tab  --tabsize=NUM"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "                .ãåîéò íùì `pr' êøã èìô áúð  -l  --paginate"
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "            .éáéñøå÷ø ïôåàá úåé÷éú-úú äååùä  -r  --recursive"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "          .íé÷éø åéä åìéàë íéøñç íéöá÷á ìôè  -N  --new-file"
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "  .íé÷éø åéä åìéàë íéøñç íéðåùàø íéöá÷á ìôè      --unidirectional-new-file"
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ".íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà  --ignore-file-name-case"
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "   .íéöá÷ä úåîùá úåðè÷î úåìåãâ úåéúåà ìéãáú  --no-ignore-file-name-case"
 
-#: src/diff.c:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "  .PAT úéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã  -x PAT  --exclude=PAT"
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "FILE-á úåéðáúì íéîéàúî íäéúåîùù íéöá÷ ìò âìã -X FILE  --exclude-from=FILE"
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "             .FILE õáå÷á úåé÷éú úàååùä ìçúä  -S FILE  --starting-file=FILE"
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -810,7 +879,7 @@ msgid ""
 msgstr ""
 ".äé÷éú úåéäì ìåëé FILE1 .íéèðîåâøàä øàù ìëì FILE1 äååùä  --from-file=FILE1"
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -818,96 +887,96 @@ msgid ""
 msgstr ""
 "   .äé÷éú úåéäì ìåëé FILE2 .FILE2-ì íéèðîåâøàä ìë äååùä  --to-file=FILE2"
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ".íéöá÷ä ïëåúá úåðè÷î úåìåãâ úåéúåà ìéãáú ìà  -i  --ignore-case"
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "             .íéçååøì TAB ïéá íéìãáäî íìòúä  -E  --ignore-tab-expansion"
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "                         .íéçååøä ìëî íìòúä  -w  --ignore-all-space"
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "                .íéçååø úåîëá íéìãáäî íìòúä  -b  --ignore-space-change"
 
-#: src/diff.c:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "                         .íéçååøä ìëî íìòúä  -w  --ignore-all-space"
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "            .úå÷éø íäéúåøåùù íééåðéùî íìòúä  -B  --ignore-blank-lines"
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, 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:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "                .èñ÷è éöá÷áë íéöá÷ä ìëá ìôè  -a  --text"
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "              .èì÷ úøåù ìë óåñî CR éååú ÷ìñ      --strip-trailing-cr"
 
-#: src/diff.c:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "                    .éøàðéá ïôåàá áåúëå àø÷      --binary"
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr "`#ifdef NAME'-á íééåðéù ãøôä ,áìåùî õáå÷ ÷ôä -D NAME  --ifdef=NAME"
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "GFMT úøæòá GTYPE âåñî èì÷ úåöåá÷ èîøô êà ,ì\"ðë  --GTYPE-group-format=GFMT"
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "               .LFMT úøæòá úåøåù èîøô êà ,ì\"ðë  --line-format=LFMT"
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 ".LFMT úøæòá LTYPE âåñî èì÷ úåøåù èîøô êà ,ì\"ðë  --LTYPE-group-format=LFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr "  .`changed' åà LTYPE åîë GTYPE .`unchanged' åà `new' ,`old' àåä LTYPE"
 
-#: src/diff.c:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -935,7 +1004,7 @@ msgstr ""
 "                               F-1  E\n"
 "                               M+1  M"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -948,7 +1017,7 @@ msgstr ""
 "       äøåùä óåñ åú èòîì äøåù ïëåú  %l\n"
 "èì÷ úøåù øåáò printf ïåðâñá úæåøçî  %[-][WIDTH][.[PREC]]{doxX}n"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -962,102 +1031,127 @@ msgstr ""
 "                         C ããåá åú  %c'C'\n"
 "             OOO éìè÷åà ãå÷ ìòá åú  %c'\\OOO'"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "            .íééåðéùä úöåá÷ úà ïéè÷äì ìãúùä  -d  --minimal"
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 ".íéöá÷ä íåéñå äìéçúá úåôúåùî úåøåù NUM øàùä          --horizon-lines=NUM"
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "  .íé÷çåøîå íéðè÷ íééåðéùå íéìåãâ íéöá÷ çðä  -H  --speed-large-files"
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "                   .ìéâø èîøåôá íééåðéù ÷ôä      --normal"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "                       .úéðëúä úñøéâ úà âöä  -v  --version"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 "                                   .éð÷úä èì÷ä õøòî àø÷ ,`-' àåä FILE íà"
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "%s [OPTION]... FILES   :ùåîéù ïôåà\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr ".äøåù äøåù íéöá÷ éðù äååùä"
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "%s ïééôàî ìù íãå÷ êøò øúåñ `%s' êøò"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "èìô ïåðâñ ìù íéøúåñ íéðééôàî"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "`%s' éåâù äøåù áçåø"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "%s-á ÷ø àöîð %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "äé÷éúì `-' úååùäì úåøùôà ïéà"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "úåé÷éú øåáò -D ïééôàîá äëéîú ïéà"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "%s-å %s :úåäæ úåé÷éú-úú\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "%s %s-ì %s %s úååùäì ïúéð àì\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "äæî äæ íéðåù `%s'-å `%s' íéöá÷ä\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "íéäæ íðéä %s-å %s íéöá÷ä\n"
@@ -1078,7 +1172,7 @@ msgstr "
 msgid "'-' specified for more than one input file"
 msgstr "ãçà èì÷ õáå÷î øúåé øåáò `-' úðééö"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "äàéø÷á äì÷ú"
@@ -1210,33 +1304,33 @@ msgstr "process_diff 
 msgid "invalid diff format; invalid change separator"
 msgstr "äéåâù íééåðéù úãøôä úæåøçî :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "äîìù äðéà äðåøçà äøåù :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "äàöîð àì `%s' úéðëú-úú"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "äøåù úìéçúá íééåâù íéååú :éåðéù ìù éåâù èîøåô"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "èìô éëøöì éåðéù ìù éåâù âåñ :úéîéðô äðëú úàéâù"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "÷îèöä èì÷ õáå÷"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "`%s'-å `%s' íéöá÷ úåîù úååùäì ïúéð àì"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1400,6 +1494,16 @@ msgstr ""
 "v   --                    ïúâöä êåú úåôúåùî úåøåù ÷úòä\n"
 "q   --  äàéöé\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s úéðëú øåáò `--%s' ääåæî-éúìá ïééôàî\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: é÷åç-éúìá ïééôàî -- %c\n"
 
index f395359..5b66dc6 100644 (file)
Binary files a/po/hr.gmo and b/po/hr.gmo differ
index b92cbb8..87ae4c4 100644 (file)
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-12-21 00:37+0100\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -19,6 +19,21 @@ msgstr ""
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Gtranslator 2.91.5\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "neispravan %s%s argument „%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "neispravan %s%s argument „%s”"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "programska greška"
@@ -27,113 +42,166 @@ msgstr "programska greška"
 msgid "stack overflow"
 msgstr "preljev stoga"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Nepoznata greška sustava"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "obična prazna datoteka"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "obična datoteka"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "direktorij"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "posebna blokovska datoteka"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "posebna znakovna datoteka"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "simbolička veza"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "utičnica"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "red poruka"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "dijeljeni memorijski objekt"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "tipizirani memorijski objekt"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "posebna blokovska datoteka"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "posebna znakovna datoteka"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "posebna blokovska datoteka"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "posebna znakovna datoteka"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "čudna datoteka"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "posebna blokovska datoteka"
+
+#: 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 "utičnica"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "čudna datoteka"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opcija „%s” je višeznačna, mogućnosti:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcija „-W %s” je višeznačna\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opcija „--%s” ne dozvoljava argument\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opcija „%c%s” ne dozvoljava argument\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opcija „--%s” zahtijeva argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: neprepoznata opcija „--%s”\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: neprepoznata opcija „%c%s”\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: neispravna opcija -- „%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opcija zahtijeva argument -- „%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opcija „-W %s” je višeznačna\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opcija „-W %s” ne dozvoljava argument\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opcija „-W %s” zahtijeva argument\n"
@@ -159,83 +227,84 @@ msgstr "%s: opcija „-W %s” zahtijeva argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Uspjeh"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Nema poklapanja"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Neispravan regularni izraz"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Neispravan znak razvrstavanja"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Neispravno ime razreda znakova"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Obrnuta kosa crta na kraju"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Neispravna povratna referenca"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Neuparena [ ili [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Neuparena ( ili \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Neuparena \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Neispravan sadržaj \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Neispravan kraj raspona"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memorija iscrpljena"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Neispravan prethodni regularni izraz"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Preuranjen kraj regularnog izraza"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Regularni izraz je prevelik"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Neuparena ) ili \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Nedostaje prethodni regularni izraz"
 
@@ -454,17 +523,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Općenita pomoć za korištenje GNU softvera: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Datoteke %s i %s se razlikuju\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binarne datoteke %s i %s se razlikuju\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Nema novog retka na kraju datoteke"
 
@@ -478,7 +547,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Pokušajte „%s --help” za više informacija."
@@ -493,14 +562,12 @@ msgstr "neispravna --ignore-initial vrijednost „%s”"
 msgid "options -l and -s are incompatible"
 msgstr "opcije -l i -s nisu kompatibilne"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "pisanje nije uspjelo"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardni izlaz"
 
@@ -559,7 +626,7 @@ msgid ""
 "at the beginning of each file (zero by default)."
 msgstr ""
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -576,7 +643,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Ako DATOTEKA nije navedena ili je „-”, čitaj standardni ulaz."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Izlazno stanje je 0 ako su ulazi jednaki, 1 ako se razlikuju, 2 u slučaju "
@@ -587,27 +654,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "neispravna --bytes vrijednost „%s”"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "nedostaje operand nakon „%s”"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "operand viška „%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr ""
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
 msgstr ""
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr ""
@@ -637,260 +704,260 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "neispravna duljina sadržaja „%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "straničenje nije podržano na ovom računalu"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "previše opcija oznaka datoteka"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "neispravna širina „%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "konfliktne opcije širine"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "neispravna duljina sadržaja „%s”"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "neispravna širina „%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "konfliktne opcije širine"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr ""
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  ispiši normalnu razliku (zadano)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   izvještaj samo kad se datoteke razlikuju"
 
-#: src/diff.c:856
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s, --report-identical-files  izvještaj samo kad su datoteke jednake"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 
-#: src/diff.c:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      ispiši ed skriptu"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     ispiši razliku u RCS obliku"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            ispiši u dva stupca"
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 
-#: src/diff.c:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr ""
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             pretvori tabulatore u praznine u izlazu"
 
-#: src/diff.c:872
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 
-#: src/diff.c:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            ne slijedi simboličke veze"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  postupaj s odsutnim datotekama kao s praznim"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 
-#: src/diff.c:881
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     zanemari veličinu slova pri uspoređivanju "
 "imena datoteka"
 
-#: src/diff.c:882
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  ne zanemaruj veličinu slova pri "
 "uspoređivanju imena datoteka"
 
-#: src/diff.c:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 
-#: src/diff.c:892
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 
-#: src/diff.c:893
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr ""
 
-#: src/diff.c:894
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 
-#: src/diff.c:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr ""
 
-#: src/diff.c:896
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 
-#: src/diff.c:897
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 
-#: src/diff.c:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr ""
 "-a, --text                      postupaj sa svim datotekama kao s tekstualnim"
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    čitaj i piši podatke u binarnom načinu"
 
-#: src/diff.c:905
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 
-#: src/diff.c:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -906,7 +973,7 @@ msgid ""
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -914,7 +981,7 @@ msgid ""
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number"
 msgstr ""
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -923,54 +990,75 @@ msgid ""
 "    C    the character C (other characters represent themselves)"
 msgstr ""
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 
-#: src/diff.c:935
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 
-#: src/diff.c:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  ispiši normalnu razliku (zadano)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               prikaži ovu pomoć i izađi"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            ispiši informacije o inačici i izađi"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DATOTEKE su „DATOTEKA1 DATOTEKA2”, „DIR1 DIR2”, „DIR DATOTEKA...” ili "
 "„DATOTEKA... DIR”."
 
-#: src/diff.c:942
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Ako je DATOTEKA „-”, čitaj standardni ulaz."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uporaba: %s [OPCIJA]... DATOTEKE\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Usporedi DATOTEKE redak po redak."
 
 # Ovdje trebam zamijeniti poredak... Pogledati kako se to radi.
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "konfliktna vrijednost „%s” opcije „%s”"
@@ -980,40 +1068,45 @@ msgstr "konfliktna vrijednost „%s” opcije „%s”"
 #
 # Format:
 # C
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktne opcije izlaznog stila"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "neispravna širina „%s”"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Samo u %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "ne mogu usporediti „-” s direktorijem"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "opcija -D nije podržana s direktorijima"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Uobičajeni poddirektoriji: %s i %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Datoteka %s je %s, a datoteka %s je %s\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Simboličke veze %s i %s se razlikuju\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Datoteke %s i %s su identične\n"
@@ -1032,7 +1125,7 @@ msgstr "nekompatibilne opcije"
 msgid "'-' specified for more than one input file"
 msgstr "„-” je navedeno za više od jedne ulazne datoteke"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "čitanje nije uspjelo"
@@ -1151,33 +1244,33 @@ msgstr "interna greška: neispravna diff vrsta u process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr ""
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "neispravan diff oblik, nepotpun posljednji redak"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "podređeni program „%s” se ne može pozvati"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr ""
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr ""
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "ulazna datoteka se smanjila"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ne mogu usporediti imena datoteka „%s” i „%s”"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekurzivna petlja direktorija"
@@ -1305,3 +1398,13 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: neprepoznata opcija „--%s”\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index f0e969c..5134d0f 100644 (file)
Binary files a/po/hu.gmo and b/po/hu.gmo differ
index 4aa15eb..1466a76 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,21 +1,40 @@
-# Hungarian traslation of diffutils
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Gábor István <stive@mezobereny.hu>, 2002
-# Andras Timar <timar@fsf.hu>, 2004
+# Hungarian traslation for diffutils.
+# Copyright (C) 2002, 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
 #
+#
+# Gábor István <stive@mezobereny.hu>, 2002.
+# Andras Timar <timar@fsf.hu>, 2004.
+# Balázs Úr <urbalazs@gmail.com>, 2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.7\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-07-04 11:22+0100\n"
-"Last-Translator: Andras Timar <timar@fsf.hu>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2014-07-13 22:01+0200\n"
+"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
 "Language: hu\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"
-"X-Generator: KBabel 1.2\n"
+"X-Generator: Lokalize 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "érvénytelen %s%s argumentum: „%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "érvénytelen %s%s argumentum: „%s”"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -23,118 +42,171 @@ msgstr "programhiba"
 
 #: lib/c-stack.c:205 lib/c-stack.c:298
 msgid "stack overflow"
-msgstr "veremtúlcsordulás"
+msgstr "veremtúlcsordulás"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Ismeretlen rendszerhiba"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
-msgstr "reguláris üres fájl"
+msgstr "szabályos üres fájl"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
-msgstr "reguláris fájl"
+msgstr "szabályos fájl"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
-msgstr "könyvtár"
+msgstr "könyvtár"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "szimbolikus link"
 
-#: lib/file-type.c:44
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "üzenetsor"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "szemafor"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "osztott memóriaobjektum"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "típusos memóriaobjektum"
+
+#: lib/file-type.c:66
 msgid "block special file"
-msgstr "blokkos speciális fájl"
+msgstr "speciális blokkfájl"
 
-#: lib/file-type.c:47
+#: lib/file-type.c:69
 msgid "character special file"
-msgstr "karakteres speciális fájl"
+msgstr "speciális karakterfájl"
 
-#: lib/file-type.c:50
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
 msgid "fifo"
 msgstr "fifo"
 
-#: lib/file-type.c:53
-msgid "symbolic link"
-msgstr "szimbolikus link"
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "speciális blokkfájl"
 
-#: lib/file-type.c:59
-msgid "message queue"
-msgstr "üzenetsor"
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "speciális karakterfájl"
 
-#: lib/file-type.c:62
-msgid "semaphore"
-msgstr "szemafor"
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
 
-#: lib/file-type.c:65
-msgid "shared memory object"
-msgstr "osztott memóriaobjektum"
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "szokatlan fájl"
 
-#: lib/file-type.c:68
-msgid "typed memory object"
-msgstr "típusos memória objektum"
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "speciális blokkfájl"
+
+#: 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 "foglalat"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
-msgstr "furcsa fájl"
+msgstr "szokatlan fájl"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: a `%s' kapcsoló nem egyértelmû\n"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű; lehetőségek:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: a `--%s' kapcsoló nem fogad el argumentumot\n"
+msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: a `%c%s' kapcsoló nem fogad el argumentumot\n"
+msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: a `%s' kapcsolóhoz argumentum szükséges\n"
+msgstr "%s: a(z) „--%s” kapcsolóhoz egy argumentum szükséges\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: ismeretlen kapcsoló: `--%s'\n"
+msgstr "%s: ismeretlen „--%s” kapcsoló\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: ismeretlen kapcsoló: `%c%s'\n"
+msgstr "%s: ismeretlen „%c%s” kapcsoló\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: érvénytelen kapcsoló -- %c\n"
+msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: a kapcsoló argumentumot igényel -- %c\n"
+msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: a `-W %s' kapcsoló nem egyértelmû\n"
+msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: a `-W %s' kapcsoló nem fogad el argumentumot\n"
+msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: a `%s' kapcsolóhoz argumentum szükséges\n"
+msgstr "%s: a „-W %s” kapcsolóhoz egy argumentum szükséges\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -157,143 +229,143 @@ msgstr "%s: a `%s' kapcsol
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
-msgstr "Sikerült"
+msgstr "Sikerült"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
-msgstr "Nincs találat"
+msgstr "Nincs találat"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
-msgstr "Érvénytelen reguláris kifejezés"
+msgstr "Érvénytelen reguláris kifejezés"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
-msgstr "Érvénytelen collation karakter"
+msgstr "Érvénytelen egyeztető karakter"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
-msgstr "Érvénytelen karakterosztálynév"
+msgstr "Érvénytelen karakterosztálynév"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
-msgstr "Záró backslash"
+msgstr "Záró visszaper"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
-msgstr "Érvénytelen visszahivatkozás"
+msgstr "Érvénytelen visszahivatkozás"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
-msgstr "Pár nélküli [ vagy [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "Pár nélküli [ vagy [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
-msgstr "Pár nélküli ( vagy \\("
+msgstr "Pár nélküli ( vagy \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
-msgstr "Pár nélküli \\{"
+msgstr "Pár nélküli \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
-msgstr "Érvénytelen tartalom a \\{\\}-ben"
+msgstr "A \\{\\} tartalma érvénytelen"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
-msgstr "Érvénytelen tartományvég"
+msgstr "Érvénytelen tartományvég"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
-msgstr "Elfogyott a memória"
+msgstr "Elfogyott a memória"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
-msgstr "Érvénytelen volt az elõzõ reguláris kifejezés"
+msgstr "Érvénytelen megelőző reguláris kifejezés"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
-msgstr "A reguláris kifejezés túl hamar ért véget"
+msgstr "A reguláris kifejezés túl korán véget ért"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
-msgstr "Túl nagy reguláris kifejezés"
+msgstr "A reguláris kifejezés túl nagy"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
-msgstr "Pár nélküli ) vagy \\)"
+msgstr "Pár nélküli ) vagy \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
-msgstr "Nincs elõzõ reguláris kifejezés"
+msgstr "Nincs megelőző reguláris kifejezés"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
-msgstr "elfogyott a memória"
+msgstr "elfogyott a memória"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "szabványos bemenet"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "szabványos kimenet"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "szabványos hibakimenet"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Ismeretlen rendszerhiba"
+msgstr "ismeretlen adatfolyam"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "%s újranyitása %s móddal meghiúsult"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "érvénytelen --bytes érték `%s'"
+msgstr "érvénytelen %s%s argumentum: „%s”"
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "érvénytelen utótag a(z) %s%s argumentumban: „%s”"
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "%s%s: a(z) „%s” argumentum túl nagy"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Csomagolta: %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Csomagolta: %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:84
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
 #: lib/version-etc.c:86
 msgid ""
@@ -304,24 +376,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"A licenc GPLv3+: a GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/"
+"gpl.html>\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:102
 #, c-format
 msgid "Written by %s.\n"
-msgstr "Írta %s.\n"
+msgstr "Írta: %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:106
 #, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Írta %s és %s.\n"
+msgstr "Írta: %s és %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:110
 #, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Írta %s, %s és %s.\n"
+msgstr "Írta: %s, %s és %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -332,8 +410,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"Írta %s, %s, %s\n"
-"és %s.\n"
+"Írta: %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
@@ -344,8 +422,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
-"%s és %s.\n"
+"Írta: %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
@@ -356,8 +434,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
-"%s, %s és %s.\n"
+"Írta: %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
@@ -368,8 +446,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
-"%s, %s, %s és %s.\n"
+"Írta: %s, %s, %s,\n"
+"%s, %s, %s és %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -381,9 +459,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
+"Írta: %s, %s, %s,\n"
 "%s, %s, %s, %s\n"
-"és %s.\n"
+"és %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -395,9 +473,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
+"Írta: %s, %s, %s,\n"
 "%s, %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
@@ -409,9 +487,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
-"Írta %s, %s, %s,\n"
+"Írta: %s, %s, %s,\n"
 "%s, %s, %s, %s,\n"
-"%s, %s és mások.\n"
+"%s, %s és mások.\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address
 #. for this package.  Please add _another line_ saying
@@ -423,39 +501,43 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"A hibák a(z) %s címen jelenthetők.\n"
 
 #: lib/version-etc.c:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "A(z) %s hibái a(z) %s címen jelenthetők.\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "A(z) %s honlapja: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
+"Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/"
+"gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
+msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
 
-#: src/analyze.c:462
-#, fuzzy, c-format
+#: src/analyze.c:455
+#, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
+msgstr "A(z) %s és a(z) %s bináris fájlok különböznek\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
-msgstr "Nincs újsor a fájl végén"
+msgstr "Nincs új sor a fájl végén"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:43
@@ -465,96 +547,96 @@ msgstr "Torbjorn Granlund"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Próbálja a `%s --help' kapcsolót további információért."
+msgstr "További információkért próbálja a(z) „%s --help” parancsot."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "érvénytelen --ignore-initial érték: `%s'"
+msgstr "érvénytelen --ignore-initial érték: „%s”"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
-msgstr "a -l és a -s kapcsolók összeférhetetlenek"
+msgstr "a -l és a -s kapcsolók összeférhetetlenek"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
-msgstr "az írás sikertelen"
+msgstr "az írás sikertelen"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
-msgstr "szabványos kimenet"
+msgstr "szabványos kimenet"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Kiírja a különbözõ byte-okat."
+msgstr "-b, --print-bytes          eltérő bájtok kiírása"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i UGRÁS  --ignore-initial=UGRÁS  Az elsõ UGRÁS db byte-ot kihagyja."
+msgstr ""
+"-i, --ignore-initial=UGRÁS        az első UGRÁS bájt kihagyása mindkét "
+"bemeneten"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
-msgstr "  Átlépi a FÁJL1 elsõ UGRÁS1 byte-ját és a FÁJL2 elsõ UGRÁS2 byte-ját"
+msgstr ""
+"-i, --ignore-initial=UGRÁS1:UGRÁS2  a FÁJL1 első UGRÁS1 bájtjának és a "
+"FÁJL2\n"
+"                                      első UGRÁS2 bájtjának kihagyása"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
-"-l  --verbose  Kiírja a byte-ok számát és az összes különbözõ byte értékét."
+"-l, --verbose              a bájt számok és az eltérő bájt értékek kiírása"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n HATÁR  --bytes=HATÁR  Legfeljebb HATÁR byte-ot hasonlít össze."
+msgstr "-n, --bytes=KORLÁT         legfeljebb KORLÁT bájt összehasonlítása"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      minden normál kimenet elfojtása"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 ezen súgó megjelenítése és kilépés"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  A kimenet a verziószám."
+msgstr "-v, --version              verzióinformációk kiírása és kilépés"
 
 #: src/cmp.c:178
 #, 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"
+msgstr "Használat: %s [KAPCSOLÓ]… FÁJL1 [FÁJL2 [UGRÁS1 [UGRÁS2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Összehasonlít két fájlt byte-onként."
+msgstr "Két fájl összehasonlítása bájtról bájtra."
 
 #: src/cmp.c:182
-#, 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 "UGRÁS1 és UGRÁS2 byte-ot lép át az egyes fájlokban."
+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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -562,392 +644,379 @@ msgid ""
 "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 ""
-"Az UGRÁS értékek után a következõ szorzóutótagokat lehet írni:\n"
-"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."
+"Az UGRÁS értékek után a következő szorzóutótagokat lehet írni:\n"
+"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:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Ha a FÁJL a `-' vagy hiányzik, akkor a szabványos bemenetet használja."
+msgstr "Ha a FÁJL a „-” vagy hiányzik, akkor a szabványos bemenetről olvas."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 "
-"hiba történt."
+"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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "érvénytelen --bytes érték `%s'"
+msgstr "érvénytelen --bytes érték: „%s”"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "hiányzó operandus a `%s' után"
+msgstr "hiányzó operandus a(z) „%s” után"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "felesleges operandus `%s'"
+msgstr "extra operandus: „%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s %s eltér: byte: %s, sor: %s\n"
+msgstr "%s %s eltér: byte: %s, sor: %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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"
+msgstr "%s %s eltér: byte %s, sor %s %3o %s %3o %s\n"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
-msgstr "cmp: EOF %s-nél\n"
+msgstr "cmp: EOF ennél: %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "érvénytelen környezethossz `%s'"
+msgstr "érvénytelen környezethossz: „%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
-msgstr "a tördelés nem támogatott ezen a gépen"
+msgstr "a tördelés nem támogatott ezen a gépen"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "túl sok fájlcímke-beállítás"
+msgstr "túl sok fájlcímke-beállítás"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "érvénytelen szélesség `%s'"
+msgstr "érvénytelen szélesség: „%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
-msgstr "összeférhetlen szélességbeállítások"
+msgstr "ütköző szélességbeállítások"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "érvénytelen munkaszinthossz `%s'"
+msgstr "érvénytelen munkaszinthossz: „%s”"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "érvénytelen tabulátorméret `%s'"
+msgstr "érvénytelen tabulátorméret: „%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
-msgstr "összeférhetlen tabulátorméret-beállítások"
+msgstr "ütköző tabulátorméret beállítások"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
-msgstr "a --from-file és a --to-file is meg van adva"
+msgstr "a --from-file és a --to-file is meg van adva"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  A kimenet egy normál diff."
+msgstr ""
+"    --normal                  egy normál diff kimenet (az alapértelmezett)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Csak akkor van kimenet, ha a fájlok eltérnek."
+msgstr "-q, --brief                   csak akkor jelent, ha a fájlok eltérnek"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Jelenti, ha a két fájl azonos."
+msgstr "-s, --report-identical-files  jelentés, ha a két fájl ugyanaz"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c, -C SZÁM, --context[=SZÁM]  a másolt környezet SZÁM (alapértelmezetten "
+"3)\n"
+"                                sorának kiírása"
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
-msgstr "-w SZÁM  --width=SZÁM  Legfeljebb SZÁM széles kimenet (alapból 130)."
+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:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  A kimenet egy ed-parancsfájl."
+msgstr "-e, --ed                      egy ed parancsfájl kiírása"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  A kimenet RCS formátumú diff."
+msgstr "-n, --rcs                     egy RCS formátumú diff kiírása"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            kimenet két oszlopban"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr "-w SZÁM  --width=SZÁM  Legfeljebb SZÁM széles kimenet (alapból 130)."
+msgstr ""
+"-W, --width=SZÁM              legfeljebb SZÁM (alapértelmezetten 130)\n"
+"                                nyomtatási oszlop kiírása"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column  A közös sorokat csak bal oldra írja ki."
+msgstr ""
+"    --left-column             a közös soroknak csak a bal oszlopának kiírása"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Nem írja ki a közös sorokat."
+msgstr "    --suppress-common-lines   ne írja ki a közös sorokat"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label CÍMKE             CÍMKE használata fájlnév helyett (ismételhető)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
-"-t  --expand-tabs  A tabulátorokat szóközzel helyettesíti a kimenetben."
+"-t, --expand-tabs             tabulátorok bővítése szóközökké a kimeneten"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab  A tabulátorok helyesen jelennek meg a kezdõ tabulátornak "
-"köszönhetõen."
+"-T, --initial-tab             beigazítja a tabulátorokat egy tabulátor\n"
+"                                hozzáfűzésével"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM  Tabulátorpozíció minden NUM. nyomtatási oszlopban (alapból 8)."
+"    --tabsize=SZÁM            a tabulátor megáll minden SZÁMADIK\n"
+"                                (alapértelmezetten 8) nyomtatási oszlopnál"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
+"    --suppress-blank-empty    szóköz vagy tabulátor elnyomása az üres "
+"kimeneti\n"
+"                                sorok előtt"
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
-"-l  --paginate  A kimenet oldalainak a lapokra tördelése a`pr' programmal."
+"-l, --paginate                kimenet átadása a „pr” parancsnak "
+"lapszámozáshoz"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Az összes alkönyvtárat megvizsgálja."
+msgstr ""
+"-r, --recursive                 a talált alkönyvtár rekurzív összehasonlítása"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            ne kövesse a szimbolikus linkeket"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  A hiányzó fájlokat üresként kezeli."
+msgstr "-N, --new-file                  a hiányzó fájlokat üresként kezelje"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
-msgstr "--unidirectional-new-file  A hiányzó elsõ fájlokat üresként kezeli."
+msgstr ""
+"    --unidirectional-new-file   a hiányzó első fájlokat üresként kezelje"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case  Fájlneveknél nem tesz különbséget\n"
-"                         a kis- és nagybetûk közt."
+"    --ignore-file-name-case     kis- és nagybetűk figyelmen kívül hagyása\n"
+"                                  fájlnevek összehasonlításakor"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Fájlneveknél figyeli a kis- és nagybetûk\n"
-"                            közti különbséget"
+"    --no-ignore-file-name-case  kis- és nagybetűk figyelembe vétele\n"
+"                                  fájlnevek összehasonlításakor"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x MINTA  --exclude=MINTA  Kihagyja a MINTÁ-ra illeszkedõ fájlokat."
+msgstr "-x, --exclude=MINTA             a MINTÁRA illeszkedő fájlok kizárása"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X FÁJL  --exclude-from=FÁJL  Kihagyja a FÁJL-ban megtalálható mintákra\n"
-"                              illeszkedõ fájlokat."
+"-X, --exclude-from=FÁJL         a FÁJLBAN lévő bármely mintára illeszkedő\n"
+"                                  fájlok kizárása"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S FÁJL  --starting-file=FÁJL  A FÁJL-lal kezdi a könyvtárak "
-"összehasolítását."
+"-S, --starting-file=FÁJL        a FÁJLLAL kezdjen könyvtárak "
+"összehasonlítását"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=FÁJL1  FÁJL1 összehasonlítása minden operandussal.\n"
-"                   FÁJL1 lehet könyvtár is."
+"    --from-file=FÁJL1           FÁJL1 összehasonlítása minden operandussal;\n"
+"                                  FÁJL1 lehet könyvtár is"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=FÁJL2  Minden operandus összehasonlítása FÁJL2-vel.\n"
-"                 FÁJL2 lehet könyvtár."
+"    --to-file=FÁJL2             minden operandus összehasonlítása FÁJL2-"
+"vel;\n"
+"                                  FÁJL2 lehet könyvtár is"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  Nem tesz különbséget a kis- és nagybetûk között."
+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:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Nem figyeli a tab/szóköz cserét."
+msgstr ""
+"-E, --ignore-tab-expansion      a tabulátorbővítés miatti változások "
+"mellőzése"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Nem figyel semmilyen üres helyet."
+msgstr "-Z, --ignore-trailing-space     a sorvégi üres helyek mellőzése"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Nem figyeli az üres helyek változtatását."
+msgstr ""
+"-b, --ignore-space-change       üres helyek számában lévő változások "
+"mellőzése"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Nem figyel semmilyen üres helyet."
+msgstr "-w, --ignore-all-space          minden üres hely mellőzése"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B  --ignore-blank-lines  Figyelmen kívül hagyja az üres sorokat."
+msgstr ""
+"-B, --ignore-blank-lines        változások mellőzése, ahol a sorok üresek"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RK  --ignore-matching-lines=RK  Nem figyeli a RK-re illeszkedõ sorokat."
+"-I, --ignore-matching-lines=RK  változások mellőzése, ahol minden sor\n"
+"                                  illeszkedik az RK-ra"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Az összes fájlt szövegként kezeli"
+msgstr "-a, --text                      az összes fájl szövegként kezelése"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr  A bemenetbõl elhagyja a befejezõ kocsivissza "
-"karaktereket."
+"    --strip-trailing-cr         a záró kocsi vissza levágása a bemenetről"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Olvasás és írás bináris módban."
+msgstr "    --binary                    adatok olvasása és írása bináris módon"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NÉV--ifdef=NÉV  Kiírja az összefésült fájlt `#ifdef NÉV' direktívákkal "
-"jelölve a különbségeket."
+"-D, --ifdef=NÉV                 egyesített fájlkiírás a „#ifdef NÉV” diffs\n"
+"                                  használatával"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
-"--GTYPE-group-format=GFMT  Hasonló, de a GTYPE bemeneti csoportokat formázza "
-"a GFMT formátumra."
+"    --GTYPE-group-format=GFMT   a GTYPE bemeneti csoportok formázása GFMT-vel"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr ""
-"--line-format=LFMT  Hasonló, de minden bemeneti sort a LFMT formátumúra "
-"formáz."
+msgstr "    --line-format=LFMT          minden bemeneti sor formázása LFMT-vel"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
-"--LTYPE-line-format=LFMT  Hasonló, de az LTYPE típusú bemeneti sorokat LFMT "
-"formátumúra formázza."
+"    --LTYPE-line-format=LFMT    az LTYPE bemeneti sorok formázása LFMT-vel"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 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:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  az LTYPE `old', `new', vagy `unchanged'.  a GTYPE LTYPE vagy `changed'."
+"  Az LTYPE „old”, „new” vagy „unchanged”. A GTYPE értéke LTYPE vagy "
+"„changed”."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -962,34 +1031,34 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT tartalmazhatja:\n"
-"    %<  a FÁJL1 sorait\n"
-"    %>  a FÁJL2 sorait\n"
-"    %=  a FÁJL1 és FÁJL2 közös sorait\n"
-"    %[-][WIDTH][.[PREC]]{doxX}BETÛ  printf-stílusú formázást\n"
-"      BETÛ a következõ lehet az új csoportra, kisbetûvel régi csoportra:\n"
-"        F  elsõ sor száma\n"
-"        L  utolsó sor száma\n"
-"        N  sorok száma = L-F+1\n"
+"  A GFMT (csak) a következőket tartalmazhatja:\n"
+"    %<  FÁJL1 sorai\n"
+"    %>  FÁJL2 sorai\n"
+"    %=  FÁJL1 és FÁJL2 közös sorai\n"
+"    %[-][SZÉLESSÉG][.[PONTOSSÁG]]{doxX}BETŰ  a BETŰ printf-stílusú megadása\n"
+"      a BETŰK a következők lehetnek az új csoporthoz, kisbetűsek a régi\n"
+"      csoporthoz:\n"
+"        F  első sor száma\n"
+"        L  utolsó sor száma\n"
+"        N  sorok száma = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  ha A egyenlő B, akkor T, egyébként E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 tartalmazhatja:\n"
-"    %L  sor tartalma\n"
-"    %l  sor tartalma, új sorral nélkül\n"
-"    %[-][WIDTH][.[PREC]]{doxX}n  bemeneti sorok számának printf-stílusú "
-"megadása"
+"  Az LFMT (csak) a következőket tartalmazhatja:\n"
+"    %L  sor tartalma\n"
+"    %l  a sor tartalma, kivéve bármilyen záró üres karaktert\n"
+"    %[-][SZÉLESSÉG][.[PONTOSSÁG]]{doxX}n  printf-stílusú megadás a bemeneti\n"
+"      sor számához"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -997,232 +1066,251 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-"  GFMT és LFMT is tartalmazhatja:\n"
+"  A GFMT és az LFMT is tartalmazhatja:\n"
 "    %%  %\n"
-"    %c'C'  egyetlen C karakter\n"
-"    %c'\\OOO'  karakter nyolcas számrendszer beli értéke"
+"    %c'C'  az önálló C karakter\n"
+"    %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:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Megpróbál kevesebb különbséget találni."
+msgstr ""
+"-d, --minimal            igyekszik egy kisebb változási halmazt megtalálni"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=SZÁM  SZÁM számú sort tart meg a közös elõ és utótagból."
+"    --horizon-lines=SZÁM  a közös előtag és utótag SZÁM sorának megtartása"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Nagy fájlokat feltételez sok, elszórt, kis "
-"változással."
+"    --speed-large-files  nagy fájlokat és sok apró kis változást tételez fel"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  A kimenet a verziószám."
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"    --normal                  egy normál diff kimenet (az alapértelmezett)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
-"A FÁJLOK 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:942
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               ezen súgó megjelenítése és kilépés"
+
+#: src/diff.c:972
+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:974
 #, fuzzy
+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:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
-"Ha --from-file vagy --to-file meg van adva, nincsenek megszorítások a FÁJLOK-"
-"ra."
+"Ha a --from-file vagy a --to-file meg van adva, akkor nincsenek "
+"megszorítások\n"
+"a FÁJLOKRA."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Ha a FÁJL `-', a szabványos bemenetrõl olvas."
+msgstr "Ha a FÁJL a „-”, akkor a szabványos bemenetről olvas."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Használat: %s [KAPCSOLÓK]... FÁJLOK\n"
+msgstr "Használat: %s [KAPCSOLÓ]… FÁJLOK\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Fájlok összehasonlítása sorról sorra."
+msgstr "FÁJLOK összehasonlítása sorról sorra."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "összeférhetetlen %s kapcsoló értéke: `%s'"
+msgstr "ütköző %s kapcsoló érték: „%s”"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
-msgstr "összeférhetetlen kimenetistílus-kapcsolók"
+msgstr "ütköző kimeneti stílus kapcsolók"
+
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "érvénytelen szélesség: „%s”"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
-msgstr "Csak %s -ben: %s\n"
+msgstr "Csak ebben: %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "`-'-t nem lehet összehasonlítani egy könyvtárral"
+msgstr "a „-” nem hasonlítható össze egy könyvtárral"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
-msgstr "-D kapcsoló nem támogatott könyvtárak esetén"
+msgstr "A -D kapcsoló könyvtáraknál nem támogatott"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
-msgstr "Közös alkönyvtárak: %s és %s\n"
+msgstr "Közös alkönyvtárak: %s és %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
+msgstr "A(z) %s fájl egy %s, viszont a(z) %s fájl egy %s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "A(z) %s és a(z) %s fájlok különböznek\n"
+msgstr "A(z) %s és a(z) %s szimbolikus linkek különböznek\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "%s és %s fájlok azonosak\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:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Randy Smith"
 
 #: src/diff3.c:313
 #, c-format
 msgid "incompatible options"
-msgstr "összeférhetetlen kapcsolók"
+msgstr "összeférhetetlen kapcsolók"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "`-' több mint egy bemeneti fájlhoz lett megadva"
+msgstr "a „-” több mint egy bemeneti fájlhoz lett megadva"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
-msgstr "olvasás sikertelen"
+msgstr "olvasás sikertelen"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Kiírja az összes változást, zárójelezi az ütközéseket."
+msgstr ""
+"-A, --show-all              minden változás kiírása, zárójelbe téve az\n"
+"                              ütközéseket"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  A RÉGI fájlból az ÚJ fájlba át nem került változásokat kiírja a "
-"SAJÁT fájlba."
+"-e, --ed                    egy ed parancsfájlt ír ki, amely a SAJÁTFÁJLBAN\n"
+"                                tartalmazza a RÉGIFÁJL és ÖNFÁJLJA "
+"változásait"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
-"-E  --show-overlap  Kiírja az át nem vitt változásokat, zárójelezi az "
-"ütközéseket."
+"-E, --show-overlap          mint a -e, de zárójelbe teszi az ütközéseket"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Kiírja a nem átvitt és nem átfedõ változásokat."
+msgstr ""
+"-3, --easy-only             mint a -e, de csak a nem átfedő változásokat\n"
+"                              tartalmazza"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Kiírja az átfedõ változtatásokat."
+msgstr ""
+"-x, --overlap-only          mint a -e, de csak az átfedő változásokat\n"
+"                              tartalmazza"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
+"-X                          mint a -x, de zárójelbe teszi az ütközéseket"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Hozzáfûzi a `w' és a`q' parancsokat az ed-parancsfájlhoz."
+msgstr ""
+"-i                          „w” és „q” parancsok hozzáfűzése az ed\n"
+"                              parancsfájlokhoz"
 
 #: src/diff3.c:438
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 az aktuális egyesített fájl kiírása a -A "
+"szerint,\n"
+"                                ha más kapcsoló nincs megadva"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Az összes fájlt szövegként kezeli"
+msgstr "-a, --text                  az összes fájl szövegként kezelése"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr ""
-"--strip-trailing-cr  A bemenetbõl elhagyja a befejezõ kocsivissza "
-"karaktereket."
+msgstr "    --strip-trailing-cr     a záró kocsi vissza levágása a bemenetről"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab  A tabulátorok helyesen jelennek meg a kezdõ tabulátornak "
-"köszönhetõen."
+"-T, --initial-tab           beigazítja a tabulátorokat egy tabulátor\n"
+"                              hozzáfűzésével"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
-"--diff-program=PROGRAM  A PROGRAM-ot használja a fájlok\n"
-"                        összehasonlításához."
+"    --diff-program=PROGRAM  a PROGRAM használata fájlok összehasonlításához"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=CÍMKE           CÍMKE használata fájlnév helyett\n"
+"                                (legfeljebb háromszor ismételhető)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  ezen súgó megjelenítése és kilépés"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  A kimenet a verziószám."
+msgstr "-v, --version               verzióinformációk kiírása és kilépés"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Használat: %s [KAPCSOLÓ]... SAJÁT RÉGI ÚJ\n"
+msgstr "Használat: %s [KAPCSOLÓ]… SAJÁTFÁJL RÉGIFÁJL ÖNFÁJLJA\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
-msgstr "Három fájlt hasonlít össze sorról sorra."
+msgstr "Három fájl összehasonlítása sorról sorra."
 
 #: src/diff3.c:470
 msgid ""
@@ -1237,202 +1325,198 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"Az alapértelmezett kimeneti formátum a változásoknak az ember által kevésbé\n"
+"olvasható ábrázolása.\n"
+"\n"
+"A -e, -E, -x, -X (és a megfelelő hosszú) kapcsolók egy ed parancsfájlt "
+"idéznek\n"
+"elő az alapértelmezett kimenet helyett.\n"
+"\n"
+"Végül a -m (--merge) kapcsoló diff3 formátumot hoz létre az egyesítés\n"
+"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:482
 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 konfliktus van; 2, ha hiba "
-"történt."
+"A kilépési állapotkód 0, ha sikeres; 1, ha ütközés van; 2, ha hiba történt."
 
 #: src/diff3.c:675
 msgid "internal error: screwup in format of diff blocks"
-msgstr "belsõ hiba: a program megzavarodott a különbségblokkok formátumánál"
+msgstr "belső hiba: zűrzavar az összehasonlítási blokkok formátumában"
 
 #: src/diff3.c:968
 #, c-format
 msgid "%s: diff failed: "
-msgstr "%s: összehasonlítás sikertelen: "
+msgstr "%s: összehasonlítás sikertelen: "
 
 #: src/diff3.c:990
 msgid "internal error: invalid diff type in process_diff"
-msgstr "belsõ hiba: érvénytelen összehasonlítási típus a process_diff-ben"
+msgstr ""
+"belső hiba: érvénytelen összehasonlítási típus a process_diff függvényben"
 
 #: src/diff3.c:1015
 msgid "invalid diff format; invalid change separator"
-msgstr "érvénytelen összehasonlítás-formátum; érvénytelen változáselválasztó"
+msgstr "érvénytelen összehasonlítási formátum; érvénytelen változáselválasztó"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "érvénytelen összehasonlítás-formátum; befejezetlen utolsó sor"
+msgstr "érvénytelen összehasonlítási formátum; befejezetlen utolsó sor"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "`%s' segédprogram nem indítható"
+msgstr "a(z) „%s” kisegítő programot nem sikerült meghívni"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "érvénytelen összehasonlítási formátum; rossz sor eleji karakter"
+msgstr "érvénytelen összehasonlítási formátum; helytelen sor eleji karakterek"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "belsõ hiba: érvénytelen összehasonlítási típus került a kimenetre"
+msgstr "belső hiba: érvénytelen összehasonlítási típus lett átadva kimenetnek"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
-msgstr "a bementi fájl összement"
+msgstr "a bementi fájl összement"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "nem lehet a(z) `%s' és a(z) `%s' fájlneveket összehasonlítani"
+msgstr "nem sikerült a(z) „%s” és a(z) „%s” fájlneveket összehasonlítani"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: rekurzív könyvtárhurok"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o FÁJL  --output=FÁJL  Interaktívan dolgozik, a kimenetet a FÁJL-ba küldi."
+"-o, --output=FÁJL            interaktív működés, kimenet küldése FÁJLBA"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  A kis- és nagybetûket azonosnak tekinti."
+msgstr "-i, --ignore-case            a kis- és nagybetűket azonosnak tekinti"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  Nem figyeli a tab/szóköz cserét."
+msgstr ""
+"-E, --ignore-tab-expansion   a tabulátorbővítés miatti változások mellőzése"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Nem figyel semmilyen üres helyet."
+msgstr "-Z, --ignore-trailing-space  a sorvégi üres helyek mellőzése"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Nem figyeli az üres helyek változtatását."
+msgstr ""
+"-b, --ignore-space-change    üres helyek számában lévő változások mellőzése"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Figyelmen kívül hagy minden üres helyet."
+msgstr "-W, --ignore-all-space       minden üres hely mellőzése"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B  --ignore-blank-lines  Figyelmen kívül hagyja az üres sorokat."
+msgstr "-B, --ignore-blank-lines     változások mellőzése, ahol a sorok üresek"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RK  --ignore-matching-lines=RK  Nem figyeli a RK-re illeszkedõ sorokat."
+"-I, --ignore-matching-lines=RK  változások mellőzése, ahol minden sor\n"
+"                                  illeszkedik az RK-ra"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr ""
-"--strip-trailing-cr  A bemenetbõl elhagyja a befejezõ kocsivissza "
-"karaktereket."
+msgstr "    --strip-trailing-cr      a záró kocsi vissza levágása a bemenetről"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Az összes fájlt szövegként kezeli"
+msgstr "-a, --text                   az összes fájl szövegként kezelése"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr "-w SZÁM  --width=SZÁM  Legfeljebb SZÁM széles kimenet (alapból 130)."
+msgstr ""
+"-w, --width=SZÁM             legfeljebb SZÁM (alapértelmezetten 130)\n"
+"                               nyomtatási oszlop kiírása"
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l  --left-column  A közös sorokat csak bal oldra írja ki."
+msgstr ""
+"-l, --left-column            a közös soroknak csak a bal oszlopának kiírása"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Nem írja ki a közös sorokat."
+msgstr "-s, --suppress-common-lines  ne írja ki a közös sorokat"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
-"-t  --expand-tabs  A tabulátorokat szóközzel helyettesíti a kimenetben."
+"-t, --expand-tabs            tabulátorok bővítése szóközökké a kimeneten"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM  Tabulátorpozíció minden NUM. nyomtatási oszlopban (alapból 8)."
+"    --tabsize=SZÁM           a tabulátor megáll minden SZÁMADIK\n"
+"                               (alapértelmezetten 8) nyomtatási oszlopnál"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Megpróbál kevesebb különbséget találni."
+msgstr ""
+"-d, --minimal                igyekszik egy kisebb változási halmazt "
+"megtalálni"
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Nagy fájlokat feltételez sok, elszórt, kis "
-"változással."
+"-H, --speed-large-files      nagy fájlokat, sok apró kis változást tételez "
+"fel"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
-"--diff-program=PROGRAM  A PROGRAM-ot használja a fájlok\n"
-"                        összehasonlításához."
+"    --diff-program=PROGRAM   a PROGRAM használata fájlok összehasonlításához"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   ezen súgó megjelenítése és kilépés"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  A kimenet a verziószám."
+msgstr "-v, --version                verzióinformációk kiírása és kilépés"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Használat: %s [KAPCSOLÓ]... FÁJL1 FÁJL2\n"
+msgstr "Használat: %s [KAPCSOLÓ]… FÁJL1 FÁJL2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Egymás mellett jeleníti a fájlokat és a különbségeiket."
+msgstr "A FÁJL1 és FÁJL2 közötti különbségek egymás melletti egyesítése."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "nem lehet interaktívan összefûzni a szabványos bemenetet."
+msgstr "nem sikerült interaktívan egyesíteni a szabványos bemenetet"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
-msgstr "mindkét összehasonlítandó fájl könyvtár"
+msgstr "mindkét összehasonlítandó fájl könyvtár"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1445,102 +1529,23 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\tSzerkesztés, majd mind a két változat használata fejlécekkel díszítve.\n"
-"eb:\tSzerkesztés, majd mind a két változat használata.\n"
-"el:\tSzerkesztés, majd a bal oldali változat használata.\n"
-"er:\tSzerkesztés, majd a jobb oldali változat használata.\n"
-"e:\tÚj változat írása.\n"
-"l:\tA bal oldali változat használata.\n"
-"r:\tA jobb oldali változat használata.\n"
-"s:\tAz azonos sorok beépítése figyelmeztetés nélkül.\n"
-"v:\tAz azonos sorok beépítése figyelmeztetéssel.\n"
-"q:\tKilépés.\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: nem megengedett kapcsoló -- %c\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 ""
-#~ "Ez szabad szoftver; a sokszorosításra vonatkozó feltételeket lásd a "
-#~ "forrásban.\n"
-#~ "SEMMILYEN garanciát nem vállalunk, még azt sem állítjuk, hogy ez a "
-#~ "program\n"
-#~ "KERESKEDELMI CÉLOKRA ALKALMAS vagy HASZNÁLHATÓ EGY ADOTT FELADATRA.\n"
-
-#~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-#~ msgstr "-i UGRÁS1:UGRÁS2  --ignore-initial=UGRÁS1:UGRÁS2"
-
-#~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
-#~ msgstr "-s  --quiet  --silent  Nincs kimenet, csak visszatérési érték."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help  Kiírja ezt a segítséget."
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "A hibákat <bug-gnu-utils@gnu.org> címre kérjük jelenteni."
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "a `-%ld' kapcsoló elavult; használja a `-%c %ld' kapcsolót "
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "a `-%ld' kapcsoló elavult; ne használja"
-
-#~ 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 SZÁM  --context[=SZÁM]  SZÁM (alapból 3) sor 'másolt' környezetet "
-#~ "ír ki.\n"
-#~ "-u  -U SZÁM  --unified[=SZÁM]  SZÁM (alapból 3) sor 'egyesített' "
-#~ "környezetet ír ki.\n"
-#~ "  --label CÍMKE  CÍMKE használata a fájlnév helyett.\n"
-#~ "  -p  --show-c-function  Megmutatja, hogy a változás melyik C függvényben "
-#~ "van.\n"
-#~ "  -F RK  --show-function-line=RK  Megmutatja a legközelebbi RK-ra "
-#~ "illeszkedõ sort."
-
-#~ 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  A kimenet két oszlop.\n"
-#~ "  -W SZÁM  --width=SZÁM  Legfeljebb SZÁM széles kimenet (alapból 130).\n"
-#~ "  --left-column  A közös sorokat csak bal oldalon írja ki.\n"
-#~ "  --suppress-common-lines  Nem írja ki a közös sorokat."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  Nagy fájlokat feltételez sok, elszórt, kis "
-#~ "változással."
-
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr " -X  Kiírja és zárójelezi az átfedõ változtatásokat."
-
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
-#~ msgstr ""
-#~ "-m  --merge  Az összefésült fájlt írja ki ed-parancsfájl helyett (alapból "
-#~ "-A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L CÍMKE  --label=CÍMKE  A CÍMKÉ-t használja fájlnév helyet."
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "`%s' segédprogram nem található"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "`%s' segédprogram futása sikertelen"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "`%s' segédprogram futása sikertelen (kilépési állapotkód: %d)"
+"ed:\tSzerkesztés, majd mindkét változat használata fejlécekkel díszítve.\n"
+"eb:\tSzerkesztés, majd mindkét változat használata.\n"
+"el vagy e1:\tSzerkesztés, majd a bal oldali változat használata.\n"
+"er vagy e2:\tSzerkesztés, majd a jobb oldali változat használata.\n"
+"e:\tMindkét változat eldobása, majd az új szerkesztése.\n"
+"l vagy 1:\tA bal oldali változat használata.\n"
+"r vagy 2:\tA jobb oldali változat használata.\n"
+"s:\tA közös sorok felvétele csendben.\n"
+"v:\tA közös sorok felvétele bőbeszédűen.\n"
+"q:\tKilépés.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: ismeretlen „--%s” kapcsoló\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 88751f8..455aba9 100644 (file)
Binary files a/po/id.gmo and b/po/id.gmo differ
index c3b6b6c..b2acc9d 100644 (file)
--- a/po/id.po
+++ b/po/id.po
@@ -2,14 +2,14 @@
 # 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, 2010.
+# Arif E. Nugroho <arif_endro@yahoo.com>, 2008, 2009, 2010, 2011, 2012, 2013, 2014.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.9\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2010-02-14 08:00+0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2014-08-03 08:00+0700\n"
 "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
@@ -17,6 +17,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumen %s%s tidak valid '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argumen %s%s tidak valid '%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "kesalahan program"
@@ -25,116 +40,169 @@ msgstr "kesalahan program"
 msgid "stack overflow"
 msgstr "overflow stack"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Kesalahan sistem tidak dikenal"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "berkas reguler kosong"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "berkas reguler"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "direktori"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "berkas blok spesial"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "berkas karakter spesial"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "link simbolik"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "antrian pesan"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semaphore"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objek memori bersama"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "tipe objek memori"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "berkas blok spesial"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "berkas karakter spesial"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "berkas blok spesial"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "berkas karakter spesial"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "berkas aneh"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "berkas blok spesial"
+
+#: 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 "soket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "berkas aneh"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: pilihan '%s' ambigu\n"
+msgstr "%s: pilihan '%s' ambigu"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: pilihan '-W %s' ambigu\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: pilihan '%s' membutuhkan sebuah argumen\n"
+msgstr "%s: pilihan '--%s' membutuhkan sebuah argumen\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: pilihan '--%s' tidak dikenal\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: pilihan '%c%s' tidak dikenal\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: pilihan -- '%c' tidak valid\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: pilihan -- '%c' membutuhkan sebuah argumen\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: pilihan '-W %s' ambigu\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: pilihan '%s' membutuhkan sebuah argumen\n"
+msgstr "%s: pilihan '-W %s' membutuhkan sebuah argumen\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -157,83 +225,84 @@ msgstr "%s: pilihan '%s' membutuhkan sebuah argumen\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Sukses"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Tidak cocok"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Ekspresi reguler tidak valid"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Karakter kolasi tidak valid"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nama kelas karakter tidak valid"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Akhiran backslash"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Referensi balik tidak valid"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Tidak cocok [ atau [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Tidak cocok ( atau \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Tidak cocok \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Isi dari \\{\\} tidak valid"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Batas akhir tidak valid"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Kehabisan memori"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Ekspresi reguler yang mengawali tidak valid"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Ekspresi reguler berakhir dengan prematur"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Ekspresi reguler terlalu besar"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Tidak cocok ) atau \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Tidak ada ekspresi reguler sebelumnya"
 
@@ -263,19 +332,19 @@ msgid "failed to reopen %s with mode %s"
 msgstr "gagal untuk membuka kembali %s dengan mode %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "argumen %s%s tidak valid `%s'"
+msgstr "argumen %s%s tidak valid '%s'"
 
 #: lib/xstrtol-error.c:68
-#, fuzzy, c-format
+#, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr "akhiran dalam argumen %s%s tidak valid `%s'"
+msgstr "akhiran dalam argumen %s%s tidak valid '%s'"
 
 #: lib/xstrtol-error.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "%s%s argument '%s' too large"
-msgstr "%s%s argumen `%s' terlalu besar"
+msgstr "%s%s argumen '%s' terlalu besar"
 
 #: lib/version-etc.c:74
 #, c-format
@@ -452,17 +521,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Bantuan umum menggunakan perangkat lunak GNU: <http://www.gnu.org/gethelp>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Berkas %s dan %s berbeda\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "File biner %s dan %s berbeda\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Tidak ada baris-baru di akhir dari berkas"
 
@@ -476,73 +545,68 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Coba `%s --help' untuk informasi lebih lanjut."
+msgstr "Coba '%s --help' untuk informasi lebih lanjut."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "tidak valid --ignore-initial nilai `%s'"
+msgstr "tidak valid --ignore-initial nilai '%s'"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "pilihan -l dan -s tidak kompatibel"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "gagal menulis"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standar keluaran"
 
 #: src/cmp.c:161
-#, fuzzy
 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:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i SKIP  --ignore-initial=SKIP  Lewati SKIP byte pertama dari masukan."
+msgstr "-i,  --ignore-initial=SKIP  Lewati SKIP byte pertama dari masukan."
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
-msgstr "  Lewati SKIP1 byte pertama FILE1 dan SKIP2 byte pertama FILE2."
+msgstr ""
+"-i, --ignore-initial=SKIP1:SKIP2  Lewati SKIP1 byte pertama FILE1 dan SKIP2 "
+"byte pertama FILE2.\n"
+"                                      first SKIP2 bytes of FILE2"
 
 #: src/cmp.c:165
-#, fuzzy
 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 jumlah byte dan nilai semua byte yang berbeda."
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMIT  --bytes=LIMIT  Bandingkan paling banyak LIMIT byte."
+msgstr "-n,  --bytes=LIMIT  Bandingkan paling banyak LIMIT byte."
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      suppress all normal output"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 display this help and exit"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Tampilkan informasi versi."
+msgstr "-v,  --version  Tampilkan informasi versi."
 
 #: src/cmp.c:178
 #, c-format
@@ -554,16 +618,18 @@ msgid "Compare two files byte by byte."
 msgstr "Bandingkan dua file byte per byte"
 
 #: src/cmp.c:182
-#, 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 "SKIP1 dan SKIP2 adalah jumlah byte yang harus dilewati di tiap file."
+msgstr ""
+"SKIP1 dan SKIP2 adalah jumlah byte yang harus dilewati di tiap file.\n"
+"at the beginning of each file (zero by default)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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"
 
 #: src/cmp.c:191
 msgid ""
@@ -576,41 +642,40 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824, dan seterusnya untuk T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 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 input standar"
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "nilai --byte tidak valid `%s'"
+msgstr "nilai --byte tidak valid '%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "tidak ada operand setelah `%s'"
+msgstr "tidak ada operand setelah '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "operand ekstra `%s'"
+msgstr "operand ekstra '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s berbeda: byte %s, baris %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF pada %s\n"
@@ -640,313 +705,279 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "panjang context tidak valid `%s'"
+msgstr "panjang context tidak valid '%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginasi tidak didukung pada host ini"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "terlalu banyak option label file"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "lebar tidak valid `%s'"
+msgstr "lebar tidak valid '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "option lebar konflik"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "panjang horizon tidak valid `%s'"
+msgstr "panjang horizon tidak valid '%s'"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "tabsize tidak valid `%s'"
+msgstr "tabsize tidak valid '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "option tabsize konflik"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file dan --to-file keduanya disebutkan"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Output normal diff."
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Tampilkan hanya apakah file berbeda."
+msgstr "-q,  --brief  Tampilkan hanya apakah file berbeda."
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 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 file sama."
 
-#: src/diff.c:857
+#: src/diff.c:886
 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"
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 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."
+"-w, NUM  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Output adalah script ed."
+msgstr "-e,  --ed  Output adalah script ed."
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Output dalam format RCS diff."
+msgstr "-n,  --rcs  Output dalam format RCS diff."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            output in two columns"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr ""
-"-w NUM  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
+msgstr "-W,  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column  Hanya tampilkan kolom kiri baris yang sama."
+msgstr "  --left-column  Hanya tampilkan kolom kiri baris yang sama."
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Jangan tampilkan baris yang sama."
+msgstr "  --suppress-common-lines  Jangan tampilkan baris yang sama."
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
-msgstr ""
+msgstr "-p, --show-c-function         show which C function each change is in"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr ""
+msgstr "-F, --show-function-line=RE   show the most recent line matching RE"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --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)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 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 output."
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 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 beraturan dg menambahkan sebuah tab."
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=NUM  Tab stop adalah setiap NUM (default 8) kolom cetakan."
 
-#: src/diff.c:874
-#, fuzzy
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "--suppress-blank-empty Tekan spasi atau tab sebelum mengeluarkan baris "
 "kosong."
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate  Berikan output ke `pr' untuk di-paginate."
+msgstr "-l,  --paginate  Berikan output ke `pr' untuk di-paginate."
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 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:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            don't follow symbolic links"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Perlakukan tiada file sebagai kosong."
+msgstr "-N,  --new-file  Perlakukan tiada file sebagai kosong."
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "--unidirectional-new-file  Anggap file tidak ada pertama sebagai kosong."
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "--ignore-file-name-case  Abaikan case saat membandingkan nama file."
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "--no-ignore-file-name-case  Pertimbangkan case saat membandingkan nama file."
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x PAT  --exclude=PAT  Tanpa file yang cocok dengan PAT."
+msgstr "-x,  --exclude=PAT  Tanpa file yang cocok dengan PAT."
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X FILE  --exclude-from=FILE  Abaikan file yang cocok dengan pola dalam FILE"
+"-X,  --exclude-from=FILE  Abaikan file yang cocok dengan pola dalam FILE"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S FILE  --starting-file=FILE  Mulai dengan FILE ketika membandingkan "
-"direktori."
+"-S,  --starting-file=FILE  Mulai dengan FILE ketika membandingkan direktori."
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 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."
+"direktori.\n"
+"                                  FILE1 can be a directory"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 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."
+"direktori.\n"
+"                                  FILE2 can be a directory"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 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 beda case dalam isi file."
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 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:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-Z,  --ignore-all-space  Abaikan seluruh white space."
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 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 sejumlah white space."
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-w,  --ignore-all-space  Abaikan seluruh white space."
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 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:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
+"-I,  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary Baca dan tulis data dalam mode biner."
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NAME  --ifdef=NAME  Output file merge untuk tampilkan `#ifdef NAME' diffs."
+"-D,  --ifdef=NAME  Output file merge untuk tampilkan `#ifdef NAME' diffs."
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--GTYPE-group-format=GFMT Serupa, tapi format input kelompok GTYPE dg GFMT. "
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "--line-format=LFMT Serupa, tapi format seluruh baris input dg LFMT."
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "--LTYPE-line-format=LFMT Serupa, tapi format baris input LTYPE dg LFMT."
 
-#: src/diff.c:909
+#: src/diff.c:938
 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."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE adalah `old', `new', atau `unchanged'.  GTYPE adalah LTYPE atau "
-"`changed'."
+"  LTYPE adalah 'old', 'new', atau 'unchanged'.  GTYPE adalah LTYPE atau "
+"'changed'."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -972,10 +1003,10 @@ msgstr ""
 "        L  nomor baris terakhir\n"
 "        N  jumlah baris = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  if A equals B then T else E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -987,8 +1018,7 @@ msgstr ""
 "    %l  isi baris, tanpa baris baru\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec untuk nomor baris input"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1001,103 +1031,120 @@ msgstr ""
 "    %c'C'  karakter tunggal C\n"
 "    %c'\\OOO'  karakter dengan kode oktal OOO"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Usahakan mencari perubahan terkecil."
+msgstr "-d,  --minimal  Usahakan mencari perubahan terkecil."
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=NUM Pertahankan NUM baris prefiks dan suffiks umum."
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
+"  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
 "kecil."
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Output normal diff."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               display this help and exit"
+
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Tampilkan informasi versi."
+msgstr "-v,  --version  Tampilkan informasi versi."
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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... "
+"FILES adalah 'FILE1 FILE2' atau 'DIR1 DIR2' atau 'DIR FILE...' atau 'FILE... "
 "DIR'."
 
-#: src/diff.c:942
-#, fuzzy
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 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 FILE adalah '-', baca standard input."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Penggunaan: %s [OPTION]... FILES\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Bandingkan file baris per baris"
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "Nilai option %s konflik dengan `%s'"
+msgstr "Nilai option %s konflik dengan '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "option gaya output konflik"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "lebar tidak valid '%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Hanya dalam %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "tidak dapat membandingkan `-' dg direktori"
+msgstr "tidak dapat membandingkan '-' dg direktori"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D option tidak didukung dg direktori"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirektori sama: %s dan %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Berkas %s dan %s berbeda\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "File %s dan %s identik\n"
@@ -1113,22 +1160,19 @@ msgid "incompatible options"
 msgstr "option tidak kompatibel"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "`-' dispesifikasikan lebih dari satu file input"
+msgstr "'-' dispesifikasikan lebih dari satu file input"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "gagal membaca"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all Output seluruh perubahan, konflik dalam tanda kurung."
+msgstr "-A,  --show-all Output seluruh perubahan, konflik dalam tanda kurung."
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
@@ -1137,55 +1181,50 @@ msgstr ""
 "MYFILE."
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E  --show-overlap  Output perubahan unmerge, konflik dl tanda kurung."
+msgstr ""
+"-E,  --show-overlap  Output perubahan unmerge, konflik dl tanda kurung."
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only Output unmerged perubahan nonoverlap."
+msgstr "-3,  --easy-only Output unmerged perubahan nonoverlap."
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Tampilkan perubahan yang overlap."
+msgstr "-x,  --overlap-only  Tampilkan perubahan yang overlap."
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          like -x, but bracket conflicts"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Tambah perintah `w' dan `q' ke script ed."
+msgstr "-i  Tambah perintah 'w' dan 'q' ke script ed."
 
 #: src/diff3.c:438
 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"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
 
 #: src/diff3.c:443
-#, fuzzy
 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 beraturan dg menambahkan sebuah tab."
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAM  Gunakan PROGRAM untuk membandingkan file."
 
@@ -1194,15 +1233,16 @@ 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)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  display this help and exit"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Tampilkan informasi versi."
+msgstr "-v,  --version  Tampilkan informasi versi."
 
 #: src/diff3.c:458
 #, c-format
@@ -1226,6 +1266,16 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\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"
 
 #: src/diff3.c:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
@@ -1249,33 +1299,33 @@ msgstr "kesalahan internal: tipe diff tidak valid dalam process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "format diff tidak valid; separator perubahan tidak valid"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "format diff tidak valid; baris akhir tidak lengkap"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "program subsider `%s' tidak dipanggil"
+msgstr "program subsider '%s' tidak dipanggil"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "format diff tidak valid; karakter leading line tidak tepat"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "kesalahan internal: tipe diff tidak valid dimasukkan ke output"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "file input mengecil"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "tidak dapat membandingkan nama file `%s' dan `%s'"
+msgstr "tidak dapat membandingkan nama file '%s' dan '%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursif loop direktori"
@@ -1286,115 +1336,94 @@ msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr ""
-"-o FILE  --output=FILE  Operasi secara interaktif, kirim output ke FILE."
+msgstr "-o,  --output=FILE  Operasi secara interaktif, kirim output ke FILE."
 
 #: src/sdiff.c:175
-#, fuzzy
 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  Abaikan huruf kapital dan huruf kecil."
 
 #: src/sdiff.c:176
-#, fuzzy
 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:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Abaikan seluruh white space."
+msgstr "-Z,  --ignore-trailling-space  Abaikan seluruh white space."
 
 #: src/sdiff.c:178
-#, fuzzy
 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 sejumlah white space."
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
 msgstr "-W  --ignore-all-space  Abaikan seluruh white space."
 
 #: src/sdiff.c:180
-#, fuzzy
 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:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
+"-I,  --ignore-matching-lines=RE  Abaikan perubahan baris yang cocok dg RE."
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Hapus trailing carriage return pada input."
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Perlakukan seluruh file sebagai teks."
+msgstr "-a,  --text  Perlakukan seluruh file sebagai teks."
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr ""
-"-w NUM  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
+msgstr "-w,  --width=NUM  Output paling banyak NUM (baku 130) kolom cetakan."
 
 #: src/sdiff.c:186
-#, fuzzy
 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:187
-#, fuzzy
 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:189
-#, fuzzy
 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 output."
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr "--tabsize=NUM  Tab stop adalah setiap NUM (default 8) kolom cetakan."
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Usahakan mencari perubahan terkecil."
+msgstr "-d,  --minimal  Usahakan mencari perubahan terkecil."
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
+"-H,  --speed-large-files  Asumsikan file besar dan banyak sebaran perubahan "
 "kecil."
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAM  Gunakan PROGRAM untuk membandingkan file."
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   display this help and exit"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Tampilkan informasi versi."
+msgstr "-v,  --version  Tampilkan informasi versi."
 
 #: src/sdiff.c:206
 #, c-format
@@ -1402,7 +1431,6 @@ msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "Pemakaian: %s [OPTION]... FILE1 FILE2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "Merge side-by-side beda file."
 
@@ -1438,6 +1466,16 @@ msgstr ""
 "v:\tSertakan baris bersama secara verbose.\n"
 "q:\tKeluar.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: pilihan '--%s' tidak dikenal\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 
index 183664e..77fcbf2 100644 (file)
Binary files a/po/it.gmo and b/po/it.gmo differ
index 5eec84b..9a33552 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -1,14 +1,14 @@
 # Italian messages for diffutils.
 # Copyright (C) 2004, 2005, 2010 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Marco Colombo <m.colombo@ed.ac.uk>, 2004, 2005, 2010, 2011.
+# Marco Colombo <m.colombo@ed.ac.uk>, 2004, 2005, 2010, 2011, 2015.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 3.2\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2011-09-14 16:26+0100\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2015-08-05 14:57+0100\n"
 "Last-Translator: Marco Colombo <m.colombo@ed.ac.uk>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
 "Language: it\n"
@@ -16,6 +16,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argomento '%3$s' di %1$s%2$s non valido"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argomento '%3$s' di %1$s%2$s non valido"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "errore del programma"
@@ -24,114 +39,167 @@ msgstr "errore del programma"
 msgid "stack overflow"
 msgstr "overflow dello stack"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Errore di sistema sconosciuto"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "file normale vuoto"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "file normale"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "directory"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "file speciale a blocchi"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "file speciale a caratteri"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "link simbolico"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "coda di messaggi"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semaforo"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "oggetto di memoria condivisa"
 
 # La memoria è tipizzata, non l'oggetto.
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "oggetto di memoria tipizzata"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "file speciale a blocchi"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "file speciale a caratteri"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "file speciale a blocchi"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "file speciale a caratteri"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "file strano"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "file speciale a blocchi"
+
+#: 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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "file strano"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: l'opzione '%s' è ambigua; alternative:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opzione '-W %s' è ambigua\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: l'opzione '--%s' non accetta argomenti\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: l'opzione '%c%s' non accetta argomenti\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: l'opzione '%s' richiede un argomento\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opzione '--%s' non riconosciuta\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opzione '%c%s' non riconosciuta\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opzione non valida -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: l'opzione richiede un argomento -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: l'opzione '-W %s' è ambigua\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opzione '-W %s' non accetta argomenti\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: l'opzione '-W %s' richiede un argomento\n"
@@ -157,83 +225,84 @@ msgstr "%s: l'opzione '-W %s' richiede un argomento\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "'"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Successo"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Nessuna corrispondenza"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Espressione regolare non valida"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Carattere di collazione non valido"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nome della classe di caratteri non valido"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Backslash finale"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Riferimento all'indietro non valido"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ o [^ non accoppiata"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( o \\( non accoppiata"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ non accoppiata"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Contenuto di \\{\\} non valido"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Fine dell'intervallo non valida"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memoria esaurita"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "L'espressione regolare precedente non è valida"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Fine prematura dell'espressione regolare"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "L'espressione regolare è troppo grande"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") o \\) non accoppiata"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Non c'è una espressione regolare precedente"
 
@@ -263,17 +332,17 @@ msgid "failed to reopen %s with mode %s"
 msgstr "riapertura di %s in modalità %s non riuscita"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
 msgstr "argomento '%3$s' di %1$s%2$s non valido"
 
 #: lib/xstrtol-error.c:68
-#, fuzzy, c-format
+#, c-format
 msgid "invalid suffix in %s%s argument '%s'"
 msgstr "suffisso '%3$s' non valido nell'argomento di %1$s%2$s"
 
 #: lib/xstrtol-error.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "%s%s argument '%s' too large"
 msgstr "argomento '%3$s' di %1$s%2$s troppo grande"
 
@@ -451,17 +520,17 @@ msgstr "%s home page: <http://www.gnu.org/software/%s/>\n"
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Aiuto sull'uso di software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "I file %s e %s sono diversi\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "I file binari %s e %s sono diversi\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Manca newline alla fine del file"
 
@@ -475,13 +544,13 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Usare '%s --help' per maggiori informazioni."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "Valore '%s' non valido per --ignore-initial"
 
@@ -490,14 +559,12 @@ msgstr "Valore '%s' non valido per --ignore-initial"
 msgid "options -l and -s are incompatible"
 msgstr "le opzioni -l e -s sono incompatibili"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "scrittura non riuscita"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard output"
 
@@ -563,7 +630,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -582,42 +649,41 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824, e così via per T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Se un FILE è '-' o è mancante, legge lo standard input."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "valore '%s' non valido per --bytes"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
 msgstr "operando mancante dopo '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
 msgstr "extra operando '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s differenza: byte %s, riga %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF in %s\n"
@@ -647,94 +713,94 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
 msgstr "lunghezza di contesto '%s' non valida"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginazione non supportata su questo host"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "troppe opzioni di etichetta"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
 msgstr "larghezza '%s' non valida"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "opzioni di larghezza in conflitto"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
 msgstr "lunghezza di orizzonte '%s' non valida"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
 msgstr "lunghezza di tabulazione '%s' non valida"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "opzioni di lunghezza di tabulazione in conflitto"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file e --to-file specificati entrambi"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  Mostra una diff normale (predefinito)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   Segnala solo se i file sono diversi"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      Mostra uno script per ed"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     Mostra una diff in formato RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            Output in due colonne"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
@@ -742,114 +808,114 @@ msgstr ""
 "righe\n"
 "                                in comune"
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   Non mostra le righe in comune"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETICHETTA         Usa ETHICHETTA invece del nome del file\n"
 "                                (può essere ripetuta)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             Espande le tabulazioni in spazi nell'output"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 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:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                Passa l'output attraverso 'pr' per impaginarlo"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive               Confronta ricorsivamente ogni sottodirectory\n"
 "                                incontrata"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            Non segue i collegamenti simbolici"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                Considera i file mancanti come vuoti"
 
-#: src/diff.c:880
+#: src/diff.c:909
 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:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=MODELLO         Esclude i file che corrispondono al MODELLO"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -857,7 +923,7 @@ msgstr ""
 "    --from-file=FILE1         Confronta FILE1 con tutti gli operandi;\n"
 "                                FILE1 può essere una directory"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -865,7 +931,7 @@ msgstr ""
 "    --to-file=FILE2           Confronta tutti gli operandi con FILE2;\n"
 "                                FILE2 può essere una directory"
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
@@ -873,49 +939,47 @@ msgstr ""
 "nel\n"
 "                                contenuto del file"
 
-#: src/diff.c:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        Ignora tutti gli spazi"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 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:897
-#, fuzzy
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                    Considera tutti i file come testo"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary  Legge e scrive in modalità binaria"
 
@@ -930,31 +994,30 @@ msgstr "    --binary  Legge e scrive in modalità binaria"
 # #endif /* NOME */
 # Testo comune.
 #
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -962,12 +1025,11 @@ msgstr ""
 "  Queste opzioni di formato forniscono un controllo preciso dell'output di\n"
 "    diff, generalizzando -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -997,7 +1059,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  se A è uguale a B allora T, altrimenti E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1010,7 +1072,7 @@ msgstr ""
 "    %[-][LARGHEZZA][.[PREC]]{doxX}n  formato in stile printf del numero\n"
 "                                       di riga di input"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1024,97 +1086,120 @@ msgstr ""
 "    %c'\\OOO'  il carattere con codice ottale OOO\n"
 "    C         il carattere C (altri caratteri rappresentano se stessi)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal               Minimizza il numero di differenze"
 
-#: src/diff.c:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  Mostra una diff normale (predefinito)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help                  Mostra questo aiuto ed esce"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr ""
 "-v, --version               Stampa le informazioni sulla versione ed esce"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Se un FILE è '-', legge lo standard input."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Uso: %s [OPZIONE]... FILES\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Confronta i file riga per riga."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "conflitto nell'opzione %s: valore '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "opzioni di stile di output in conflitto"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "larghezza '%s' non valida"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Solo in %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "impossibile confrontare '-' con una directory"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "opzione -D non supportata con directory"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Sottodirectory in comune: %s e %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "I file %s e %s sono diversi\n"
+msgstr "I collegamenti simbolici %s e %s sono diversi\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "I file %s e %s sono identici\n"
@@ -1130,11 +1215,10 @@ msgid "incompatible options"
 msgstr "opzioni incompatibili"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
 msgstr "'-' specificato per più di un file di input"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lettura fallita"
@@ -1230,7 +1314,6 @@ msgid "-X                          like -x, but bracket conflicts"
 msgstr "-X                          Come -x, ma tiene separati i conflitti"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
 "-i                          Aggiunge i comandi 'w' e 'q' agli script per ed"
@@ -1339,33 +1422,33 @@ msgstr "errore interno: tipo di diff non valido in process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "formato di diff non valido; separatore di modifica non valido"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "formato di diff non valido; ultima riga incompleta"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "programma accessorio '%s' non può essere chiamato"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "formato di diff non valido; caratteri incorretti a inizio riga"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "errore interno: il tipo di diff passato all'output non è valido"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "il file di input è rimpicciolito"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "impossibile confrontare i nomi dei file '%s' e '%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: ciclo ricorsivo tra le directory"
@@ -1414,7 +1497,6 @@ msgstr "-B, --ignore-blank-lines    Ignora differenze in righe vuote"
 
 # Lo strano allineamento della seconda riga è corretto
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=ER Ignora differenze che corrispondono\n"
@@ -1523,3 +1605,13 @@ msgstr ""
 "s:\tInclude silenziosamente le righe in comune.\n"
 "v:\tInclude prolissamente le righe in comune.\n"
 "q:\tEsce.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: opzione '--%s' non riconosciuta\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index e12f65e..875a729 100644 (file)
Binary files a/po/ja.gmo and b/po/ja.gmo differ
index 9c96ab4..1c16da5 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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
@@ -22,6 +22,21 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "引数 `%3$s' に対して %1$s%2$s が無効です"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "引数 `%3$s' に対して %1$s%2$s が無効です"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "プログラムエラー"
@@ -30,113 +45,166 @@ msgstr "プログラムエラー"
 msgid "stack overflow"
 msgstr "スタックオーバーフロー"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "不明なシステムエラー"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "通常の空ファイル"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "通常ファイル"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "ディレクトリー"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "ブロックスペシャルファイル"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "キャラクタスペシャルファイル"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "シンボリックリンク"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "ソケット"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "メッセージキュー"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "セマフォ"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "共有メモリオブジェクト"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "型付メモリオブジェクト"
 
-#: lib/file-type.c:70
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "ブロックスペシャルファイル"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "キャラクタスペシャルファイル"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "不明なファイル"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: オプション '%s' は曖昧です。次のものが可能です:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: オプション '-W %s' は曖昧です\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: オプション '--%s' は引数を取ることができません\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: オプション '%c%s' は引数を取ることができません\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: オプション '--%s' は引数が必要です\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: オプション '--%s' を認識できません\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: オプション '%c%s' を認識できません\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: 無効なオプション -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: オプションには引数が必要です -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: オプション '-W %s' は曖昧です\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: オプション '-W %s' は引数を取ることができません\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: オプション '-W %s' は引数が必要です\n"
@@ -162,83 +230,84 @@ msgstr "%s: オプション '-W %s' は引数が必要です\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "成功です"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "一致しません"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "無効な正規表現です"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "無効な照合文字です"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "無効な文字クラス名です"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "終端のバックスラッシュ"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "無効な前方参照です"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ または [^ が不一致です"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( または \\( が不一致です"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ が不一致です"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} の中身が無効です"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "無効な範囲終了です"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "メモリを使い果たしました"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "無効な前方正規表現です"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "正規表現が途中で終了しました"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "正規表現が大きすぎます"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") または \\) が不一致です"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "以前に正規表現がありません"
 
@@ -458,17 +527,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "GNU ソフトウェアを使用する際の一般的なヘルプ: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "ファイル %s と %s は異なります\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "バイナリーファイル %s と%s は異なります\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "ファイル末尾に改行がありません"
 
@@ -482,7 +551,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "詳しくは`%s --help'を実行してください。"
@@ -497,14 +566,12 @@ msgstr "無効な --ignore-initial の値 `%s' です"
 msgid "options -l and -s are incompatible"
 msgstr "オプション -l と -s は同時に指定できません"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "書き込みに失敗しました"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "標準出力"
 
@@ -563,7 +630,7 @@ msgstr ""
 "オプションの SKIP1 と SKIP2 はそれぞれのファイルの先頭からスキップする\n"
 "バイト数を指定します(デフォルトは 0)。"
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -585,7 +652,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "FILE が `-' または指定しない場合、標準入力から読み込みます。"
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "終了コードは、入力ファイルが同じ場合は 0、入力ファイルが異なる場合は 1、\n"
@@ -596,27 +663,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "無効な --bytes の値 `%s' です。"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s' の後に被演算子がありません"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "余分な被演算子 `%s' です。"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s 異なります: バイト %s、行 %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: %s でファイル終端 (EOF) に達しました\n"
@@ -646,192 +713,193 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "無効な前後の行数 `%s' です"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "このホストではページ割付けをサポートしません"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "ファイル・ラベル・オプションが多すぎます"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "無効な幅 `%s' です"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "幅のオプションが競合しています"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "無効な横幅 `%s' です"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "無効なタブ幅 `%s' です"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "タブ幅のオプションが競合しています"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file および --to-file の両方が指定されています"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  通常の diff を出力する (デフォルト)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   ファイルが異なるかどうかのみ表示する"
 
-#: src/diff.c:856
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
 "-s, --report-identical-files  両方のファイルが同一であるかどうかのみ表示する"
 
-#: src/diff.c:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      ed スクリプトを出力する"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     RCS 形式の diff を出力する"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            出力を2列にする"
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=NUM               表示する列を最大 NUM (デフォルト: 130) 列にする"
 
-#: src/diff.c:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "    --left-column             共通行は左側の列のみ表示する"
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   共通行の出力を抑止する"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr "-p, --show-c-function         変更がある C 関数を表示する"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RE   RE に一致する最も近い行を表示する"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label LABEL             ファイル名の代わりに LABEL を使用する\n"
 "                                (繰り返し指定できます)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             出力時にタブをスペースに展開する"
 
-#: src/diff.c:872
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T, --initial-tab             タブで始まる行は、前にタブを置いてそろえる"
 
-#: src/diff.c:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=NUM             タブ幅を NUM (デフォルト: 8) 列に設定する"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    空の出力行の前後ではスペースまたはタブを抑止す"
 "る"
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                ページ割り付けを行うために `pr' を通して出力す"
 "る"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive                 サブディレクトリーを再帰的に比較する"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N, --new-file                  存在しないファイルを空ファイルとして扱う"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   存在しない最初のファイルを空ファイルとして扱"
 "う"
 
-#: src/diff.c:881
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "    --ignore-file-name-case     ファイル名の大文字と小文字を区別しない"
 
-#: src/diff.c:882
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr "    --no-ignore-file-name-case  ファイル名の大文字と小文字を区別する"
 
-#: src/diff.c:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=PAT               PAT に一致するファイルを除外する"
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
 "-X, --exclude-from=FILE         FILE 内のパターンに一致するファイルを除外する"
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=FILE        ディレクトリーを比較する時に FILE から始める"
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -839,7 +907,7 @@ msgstr ""
 "    --from-file=FILE1           すべての被演算子と FILE1 を比較する\n"
 "                                  FILE1 はディレクトリーでもよい"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -847,57 +915,57 @@ msgstr ""
 "    --to-file=FILE2             すべての被演算子を FILE2 を比較する\n"
 "                                  FILE2 はディレクトリーでもよい"
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i, --ignore-case               ファイル内容の比較時に大文字と小文字を区別し"
 "ない"
 
-#: src/diff.c:892
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E, --ignore-tab-expansion      タブ展開によって発生する違いを無視する"
 
-#: src/diff.c:893
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     行末にあるスペースを無視する"
 
-#: src/diff.c:894
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b, --ignore-space-change       スペース数により生じる違いを無視する"
 
-#: src/diff.c:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          すべてのスペースを無視する"
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B, --ignore-blank-lines        空白類文字だけの行により生じる違いを無視する"
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  RE と一致するすべての行の違いを無視する"
 
-#: src/diff.c:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      すべてのファイルをテキストとして扱う"
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         入力から CR (キャリッジリターン) を除去する"
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    バイナリーモードでデータを読み書きする"
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -905,19 +973,19 @@ msgstr ""
 "-D, --ifdef=NAME                パッチ適用時に `#ifdef NAME' で併合されるよう"
 "に差分を出力する"
 
-#: src/diff.c:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYPE-group-format=GFMT   GTYPE の入力グループを GFMT で整形する"
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=LFMT          すべての入力行を LFMT で整形する"
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --LTYPE-line-format=LFMT    LTYPE 入力行を LFMT で整形する"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -926,14 +994,14 @@ msgstr ""
 "に\n"
 "    見えるように制御するために提供されます。"
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE は `old'、`new'、または`unchanged'です。GTYPE は LTYPE または "
 "`changed' です。"
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -961,7 +1029,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  A と B が等しい場合は T、等しくない場合は E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -973,7 +1041,7 @@ msgstr ""
 "    %l  行末にあるすべての種類の改行文字を除いた行の内容\n"
 "    %[-][WIDTH][.[PREC]]{doxX}n  printf 書式の入力行"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -987,96 +1055,121 @@ msgstr ""
 "    %c'\\OOO'  八進数コード OOO\n"
 "    C    文字 C (他の文字も同様に表す)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d, --minimal            差分の大きさが最小となるように違いを検出する"
 
-#: src/diff.c:935
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "    --horizon-lines=NUM  差分の前後にある共通部分を NUM 行保持する"
 
-#: src/diff.c:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  巨大なファイルに小さな差分が分散していると仮定する"
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  通常の diff を出力する (デフォルト)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               このヘルプを表示して終了する"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            バージョン情報を表示して終了する"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "FILE が `-' の場合、標準入力から読み込みます。"
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "使用法: %s [OPTION]... FILES\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "FILES を行ごとに比較します。"
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "%s オプションの値 `%s' が競合しています"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "出力形式オプションが競合しています"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "無効な幅 `%s' です"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "%s のみに存在: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "`-' とディレクトリーは比較できません"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D オプションはディレクトリーにはサポートされません"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "共通のサブディレクトリー: %s と %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "ファイル %s は %s です。一方、ファイル %s は %s です\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "ファイル %s と %s は異なります\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "ファイル %s と %s は同一です\n"
@@ -1096,7 +1189,7 @@ msgstr "同時に指定できないオプションです"
 msgid "'-' specified for more than one input file"
 msgstr "入力ファイルとして `-' が複数回指定されています"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "読み込みに失敗しました"
@@ -1238,33 +1331,33 @@ msgstr "内部エラー: process_diff 内に無効な差分型があります"
 msgid "invalid diff format; invalid change separator"
 msgstr "無効な差分形式です。無効な変更区切りです"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "無効な差分形式です。最後の行が不完全です"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "下位プログラム `%s' が起動できません"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "無効な差分形式です。行の先頭文字が誤っています"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "内部エラー: 無効な差分型が出力に渡されました"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "入力ファイルが小さくなりました"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ファイル `%s' と `%s' を比較できません"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: ディレクトリーが再帰的にループしています"
@@ -1410,6 +1503,16 @@ msgstr ""
 "v:            共通行を明示して含める。\n"
 "q:            終了する。\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: オプション '--%s' を認識できません\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 
index 767078a..83a1440 100644 (file)
Binary files a/po/lv.gmo and b/po/lv.gmo differ
index 6e8c3db..5d315b4 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
@@ -1,22 +1,39 @@
 # Latvian translation of diffutils.
 # Copyright (C) 2009 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Rihards Priedītis <rprieditis@gmail.com>, 2009, 2010.
 #
+# Rihards Priedītis <rprieditis@gmail.com>, 2009, 2010.
+# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2014.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils-3.0\n"
+"Project-Id-Version: diffutils-3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2010-07-07 11:28+0100\n"
-"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
+"POT-Creation-Date: 2016-08-08 10:12-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"
 "Language: lv\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\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 != 0 ? 1 : "
 "2);\n"
+"X-Generator: Lokalize 1.5\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "nederīgs %s%s arguments “%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "nederīgs %s%s arguments “%s”"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -26,116 +43,169 @@ msgstr "programmas kļūda"
 msgid "stack overflow"
 msgstr "steka pārplūšana"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Nezināma sistēmas kļūda"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
-msgstr "parasts tukšs fails"
+msgstr "parasta tukša datne"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
-msgstr "parasts fails"
+msgstr "parasta datne"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "direktorija"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "īpašais bloka fails"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "īpašaias rakstzīmes fails"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "simboliskā saite"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "sokets"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
-msgstr "ziņu rinda"
+msgstr "ziņojumu rinda"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafors"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "koplietots atmiņas objekts"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "tipa atmiņas objekts"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "īpaša bloka datne"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "īpaša rakstzīmes datne"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "īpaša bloka datne"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "īpaša rakstzīmes datne"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "dīvaina datne"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "īpaša bloka datne"
+
+#: 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 "sokets"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
-msgstr "dīvains fails"
+msgstr "dīvaina datne"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: opcija \"%s\" ir divdomīga\n"
+msgstr "%s: opcija “%s” nav viennozīmīga, iespējas:"
+
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcija “-W %s” ir divdomīga\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: opcija \"--%s\" neatļauj argumentu\n"
+msgstr "%s: opcija “--%s” neatļauj argumentu\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: opcija \"%c%s\" neatļauj argumentu\n"
+msgstr "%s: opcija “%c%s” neatļauj argumentu\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: opcijai \"%s\"  nepieciešams arguments\n"
+msgstr "%s: opcijai “--%s” nepieciešams arguments\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: neatpazīta opcija \"--%s\"\n"
+msgstr "%s: neatpazīta opcija “--%s”\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: neatpzīta opcija \"%c%s\"\n"
+msgstr "%s: neatpazīta opcija “%c%s”\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: nderīga opcija -- \"%c\"\n"
+msgstr "%s: nederīga opcija -- “%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: opcijai nepieciešams arguments -- \"%c\"\n"
+msgstr "%s: opcijai nepieciešams arguments -- “%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: opcija \"-W %s\" ir divdomīga\n"
+msgstr "%s: opcija “-W %s” ir divdomīga\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: opcija \"-W %s\" neatļauj argumentu\n"
+msgstr "%s: opcija “-W %s” neatļauj argumentu\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: opcijai \"-W %s\"  nepieciešams arguments\n"
+msgstr "%s: opcijai “-W %s” nepieciešams arguments\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -158,89 +228,90 @@ msgstr "%s: opcijai \"-W %s\"  nepieciešams arguments\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr "\""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr "\""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Veiksmīgi"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
-msgstr "Nav sakritību"
+msgstr "Nav atbilstību"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Nederīga regulārā izteiksme"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Nederīga salīdzināmā rakstzīme"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nederīgs rakstzīmju klases nosaukums"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
-msgstr "Atkārtojošās otrādās slīpsvītras"
+msgstr "Sekojošās otrādās slīpsvītras"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
-msgstr "Nederīga aizmugures atsauce"
+msgstr "Nederīga atpakaļ norāde"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
-msgstr "Nesakrītošs [ vao [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "Nesakrītošs [ vai [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Nesakrītošs ( vai \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Nesakrītošs \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
-msgstr "Nederīgs saturs iekš \\{\\}"
+msgstr "Nederīgs \\{\\} saturs"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Nederīgas apgabala beigas"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
-msgstr "Izskausta atmiņa"
+msgstr "Atmiņa izsmelta"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Nederīga iepriekšējā regulārā izteiksme"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Priekšlaicīgas beigas regulārai izteiksmei"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Pārāk liela regulārā izteiksme"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
-msgstr "Nesakrītošs ) vai \\)"
+msgstr "Nav atbilstoša ) vai \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Nav iepriekšējas regulārās izteiksmes"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
-msgstr "atmiņa izskausta"
+msgstr "atmiņa izsmelta"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
@@ -256,7 +327,7 @@ msgstr "stderr"
 
 #: lib/xfreopen.c:38
 msgid "unknown stream"
-msgstr "nezināma plūsma"
+msgstr "nezināma straume"
 
 #: lib/xfreopen.c:39
 #, c-format
@@ -264,19 +335,19 @@ msgid "failed to reopen %s with mode %s"
 msgstr "neizdevās atkārtoti atvērt %s režīmā %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "nederīgs %s%s arguments \"%s\""
+msgstr "nederīgs %s%s arguments “%s”"
 
 #: lib/xstrtol-error.c:68
-#, fuzzy, c-format
+#, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr "nederīgs  piedēklis iekš %s%s argumenta \"%s\""
+msgstr "nederīgs piedēklis %s%s argumentā “%s”"
 
 #: lib/xstrtol-error.c:72
-#, fuzzy, c-format
+#, c-format
 msgid "%s%s argument '%s' too large"
-msgstr "%s%s arguments \"%s\" ir pārak liels"
+msgstr "%s%s arguments “%s” ir pārāk liels"
 
 #: lib/version-etc.c:74
 #, c-format
@@ -307,8 +378,8 @@ msgstr ""
 "\n"
 "Licence GPLv3+: GNU GPL versija 3 vai vēlāka <http://gnu.org/licenses/gpl."
 "html>.\n"
-"Šī ir brīva programatūra: jums ir brīvība mainīt un izplatīt to.\n"
-"NAV GARANTIJAS, līdz likuma atļautajam līmenim.\n"
+"Šī ir brīva programmatūra: jums ir brīvība to mainīt un izplatīt.\n"
+"Tai NAV GARANTIJAS, cik to pieļauj likums.\n"
 "\n"
 
 #. TRANSLATORS: %s denotes an author name.
@@ -321,13 +392,13 @@ msgstr "Sarakstīja %s.\n"
 #: lib/version-etc.c:106
 #, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Sarkstīja %s un %s.\n"
+msgstr "Sarakstīja %s un %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:110
 #, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Sarkstīja %s, %s un %s\n"
+msgstr "Sarakstīja %s, %s un %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -338,7 +409,7 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s\n"
+"Sarakstīja %s, %s, %s\n"
 "un %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
@@ -350,7 +421,7 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s un %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
@@ -362,7 +433,7 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s, %s un %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
@@ -374,7 +445,7 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s, %s, %s un %s\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
@@ -387,7 +458,7 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s,%s, %s, %s,\n"
 "un %s.\n"
 
@@ -401,7 +472,7 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s,%s, %s, %s,\n"
 "%s un %s.\n"
 
@@ -415,7 +486,7 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
-"Sarkstīja %s, %s, %s,\n"
+"Sarakstīja %s, %s, %s,\n"
 "%s,%s, %s, %s,\n"
 "%s, %s un citi.\n"
 
@@ -450,22 +521,22 @@ msgstr "%s mājas lapa: <http://www.gnu.org/software/%s/>\n"
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
-"Vispārēja palīdzība izmantojot GNU programmatūru: <http://www.gnu.org/"
+"Vispārēja palīdzība, izmantojot GNU programmatūru: <http://www.gnu.org/"
 "gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "Faili %s un %s atšķiras\n"
+msgstr "Datnes %s un %s atšķiras\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Binārie faili %s un %s atšķiras\n"
+msgstr "Binārās datnes %s un %s atšķiras\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
-msgstr "Nav jaunu rindu faila beigās"
+msgstr "Nav jaunu rindu datnes beigās"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:43
@@ -477,98 +548,92 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Mēģiniet \"%s --help\" , lai iegūtu vairāk informācijas."
+msgstr "Lietojiet “%s --help”, lai uzzinātu vairāk."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "nederīga --ignore-initial vērtība \"%s\""
+msgstr "nederīga --ignore-initial vērtība “%s”"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "opcijas -l un -s nav savstarpēji saderīgas"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "rakstīšana neizdevās"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
-msgstr "standarta izvads"
+msgstr "standarta izvade"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Drukāt atšķirīgos bitus."
+msgstr "-b, --print-bytes          drukāt atšķirīgos baitus"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
-"-i IZLAIST  --ignore-initial=IZLAIST  Izlaists pirmos IZLAIŽAMOS baitus "
-"ievadā."
+"-i, --ignore-initial=IZLAIST      izlaists pirmos IZLAIŽAMOS baitus ievadē"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"Izalist pirmo IZLAIST1 baitus no FAILA1 un pirmos IZLAIST2 baitus no FAILA2."
+"-i, --ignore-initial=IZLAIST1:IZLAIST2 izlaist pirmos IZLAIST1 DATNE1 "
+"baitus\n"
+"                                       un pirmos IZLAIST2 DATNE2 baitus"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
-"-l  --verbose  Izvadīt baita numurus un vērtības visiem atšķirīgajiem "
-"baitiem."
+"-l, --verbose              izvadīt baitu numurus un atšķirīgo baitu vērtības"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n ROBEŽA  --bytes=ROBEŽA  Salīdzināt līdz ROBEŽAS baitiem."
+msgstr "-n, --bytes=ROBEŽA         salīdzināt līdz ROBEŽAs baitiem"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      nomākt visu parasto izvadi"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 parādīt šo palīdzību un iziet"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Izvada versijas informāciju."
+msgstr "-v, --version              izvada informāciju par versiju un iziet"
 
 #: src/cmp.c:178
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Izmantošana: %s [OPCIJAS]... FAILS1 [FAILS2 [IZLAIST1 [IZLAIST2]]]\n"
+msgstr "Izmantošana: %s [OPCIJAS]... DATNE1 [DATNE2 [IZLAIST1 [IZLAIST2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Salīdzināt divus faili baitu pa baitam."
+msgstr "Salīdzināt divas datnes baitu pa baitam."
 
 #: src/cmp.c:182
-#, 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 "IZLAIST1 un IZLAIST2 ir cipari, cik baitus izlaist katrā failā."
+msgstr ""
+"Neobligātie IZLAIST1 un IZLAIST2 norāda, cik baitus izlaist\n"
+"katras datnes sākumā (pēc noklusējuma nulle)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -581,42 +646,41 @@ msgstr ""
 "GB 1,000,000,000, G 1,073,741,824, un tā tālāk T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Ja FAILAM ir \"-\" vai trūkst, tad lasīt standarta ievadu."
+msgstr "Ja DATNEI ir “-” vai tā nav, tad lasīt standarta ievadi."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
-"Izejas stāvoklis ir 0, ja ievads ir tāds pats, 1 ja tas ir atšķirīgs, 2 ja "
-"ir neptikšanas."
+"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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "nederīga --bytes vērtība \"%s\""
+msgstr "nederīga --bytes vērtība “%s”"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "trūkst operands pēc \"%s\""
+msgstr "trūkst operands pēc “%s”"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "papildus operands \"%s\""
+msgstr "papildu operands “%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s atšķiras: baits %s, rinda %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF uz %s\n"
@@ -646,323 +710,292 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "nederīgs konteksta garums \"%s\""
+msgstr "nederīgs konteksta garums “%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "lapošana netiek atbalstīta uz šī resursdatora"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "pārāk daudz faila etiķešu opciju"
+msgstr "pārāk daudz datnes etiķešu opciju"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "nederīgs platums \"%s\""
+msgstr "nederīgs platums “%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "konfliktējošas platuma opcijas"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "nederīgs horizontālais garums \"%s\""
+msgstr "nederīgs horizontālais garums “%s”"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "nederīgs tabulācijas izmērs \"%s\""
+msgstr "nederīgs tabulācijas izmērs “%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "konfliktējošas tabulācijas izmēru opcijas"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file un --to-file abi norādīti"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Izvada parastu diff."
+msgstr "    --normal                  izvada parastu diff (noklusējuma)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Izvadit tikai, ja faili atšķiras."
+msgstr "-q, --brief                   ziņot tikai, ja datnes atšķiras"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Ziņot, kad divi faili ir vienādi."
+msgstr "-s, --report-identical-files  ziņot, ja divas datnes ir vienādas"
 
-#: src/diff.c:857
+#: src/diff.c:886
 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:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w NUMURS  --width=NUMURS  Izvada līdz NUMURAM (noklusētais 130) drukas "
-"kolonas."
+"-u, -U NUM, --unified[=NUM]   izvadīt NUM (noklus. 3) vienotā konteksta "
+"rindas"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Izvada ed skriptā."
+msgstr "-e, --ed                      izvada ed skriptu"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Izvada RCS diff formātā."
+msgstr "-n, --rcs                     izvada RCS formāta diff"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            izvade divās kolonnās"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUMURS  --width=NUMURS  Izvada līdz NUMURAM (noklusētais 130) drukas "
-"kolonas."
+"-W, --width=NUM               izvada līdz NUM (noklusējuma 130) drukas "
+"kolonas"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --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."
+msgstr ""
+"    --left-column             izvadīt tikai kreiso kolonu no kopējām rindām"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Neizvadīt kopējās rindas."
+msgstr "    --suppress-common-lines   neizvadīt kopējās rindas"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
-msgstr ""
+msgstr "-p, --show-c-function         rādīt, kurās C funkcijās ir izmaiņas"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr ""
+msgstr "-F, --show-function-line=RE   rādīt visnesenāko rindu, kas atbilst RE"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label ETIĶETE           izmantot ETIĶETI nevis datnes nosaukumu\n"
+"                                (var atkārtot)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Izplest tabulācijas atstarpi izvadā."
+msgstr ""
+"-t, --expand-tabs             pārveidot tabulācijas par atstarpēm izvadē"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Pacelt tabulācijas rindu pirm tabulācijas."
+msgstr ""
+"-T, --initial-tab             pacelt tabulācijas rindu pirms tabulācijas"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUMURS  Tabulāciju apstāšanāss ir katru NUMURU (noklusētais ir 8) "
-"drukas kolonas."
+"    --tabsize=NUM             tabulāciju pietura ik NUM drukas "
+"kolonas                                          (noklusējuma ir 8)"
 
-#: src/diff.c:874
-#, fuzzy
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
-"--suppress-blank-empty  Apspiest atstarpes vai tabulācijas pirms tukšam "
-"izvades rindām."
+"    --suppress-blank-empty    apspiest atstarpes vai tabulācijas pirms "
+"tukšām\n"
+"                                izvades rindām."
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate  Izlaist izvadu caur \"pr\", lai lapotu to."
+msgstr "-l, --paginate                izlaist izvadi caur “pr”, lai to lapotu"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
-"-r  --recursive  Rekursīvā salīdzināšana jebkurai atrastai apakšdirektorijai."
+"-r, --recursive                 rekursīvi salīdzina atrastās "
+"apakšdirektorijas"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            nerādīt simboliskās saites"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Izturēties pret trūkstošiem faili, kā tukšiem failiem."
+msgstr "-N, --new-file                  trūkstošas datnes uzskatīt par tukšām"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file  Izturēties pret trūkstošiem failiem kā tukšiem."
+"    --unidirectional-new-file   trūkstošas pirmās datnes uzskatīt par tukšām"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case  Ignorēt reģistru, kad salīdzina faila nosaukumus."
+"    --ignore-file-name-case     ignorēt reģistru, salīdzinot datņu nosaukumus"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Neignorēt reģistru kad salīdzina faila "
-"nosaukumus."
+"    --no-ignore-file-name-case  neignorēt reģistru, salīdzinot datņu "
+"nosaukumus"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x PAT  --exclude=PAT  Izslēgt failus, kuri atbilst PAT."
+msgstr "-x, --exclude=ŠABLONS           izslēgt datnes, kuras atbilst ŠABLONAM"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X FAILS  --exclude-from=FAILS  Izslēgt failus, kuri atbilst jebkuram "
-"paternam FAILĀ."
+"-X, --exclude-from=DATNE        izslēgt datnes, kuras atbilst jebkuram\n"
+"                                  šablonam DATNĒ"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S FAILS  --starting-file=FAILS  Sākt ar FAILU, kad salīdzina direktorijas."
+"-S, --starting-file=DATNE       sākt ar DATNI, kad salīdzina direktorijas"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=FAILS1  Salīdzini FAILU1 ar visiem operandiem. FAILS1 nevar būt "
-"direktorija."
+"    --from-file=DATNE1          salīdzina DANTE1 ar visiem operandiem;\n"
+"                                  DATNE1 var būt direktorija"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=FAILS2  Salīdzini visus operandus ar FAILU2. FAILS2 nevar būt "
-"direktorija."
+"    --to-file=FILE2             salīdzina visus operandus ar DANTE2;\n"
+"                                  DATNE2 var būt direktorija"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  Ignorē reģistra atšķirības faila saturā."
+msgstr ""
+"-i, --ignore-case               ignorē reģistra atšķirības datnes saturā"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 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."
+"-E, --ignore-tab-expansion      ignorēt izmaiņas dēļ tabulācijas izplešanās"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignorēt visas atstarpes."
+msgstr "-Z, --ignore-trailing-space     ignorēt visas atstarpes rindu beigās"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 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."
+msgstr "-b, --ignore-space-change       ignorēt izmaiņas dēļ atstarpēm"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Ignorēt visas atstarpes."
+msgstr "-w, --ignore-all-space          ignorēt visas atstarpes"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B  --ignore-blank-lines  Ignorēt izmaiņas rindās, kur viss ir tukšs."
+msgstr "-B, --ignore-blank-lines        ignorēt izmaiņas tukšajās rindās"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignorēt izmaiņas rindās, kuras sakrīt ar "
-"RE."
+"-I, --ignore-matching-lines=RE  ignorēt izmaiņas rindās, kuras sakrīt ar RE"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Izturēties pret visiem failiem, kā teksta."
+msgstr "-a, --text                      uztvert visas datnes kā teksta datnes"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Noņemt atkārtojošo rakstatgrieze ievadā."
+msgstr ""
+"    --strip-trailing-cr         noņemt atkārtojošos rakstatgriezi ievadē"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Lasīt un rakstīt datus binārajā režīmā."
+msgstr "    --binary                    lasīt un rakstīt datus binārajā režīmā"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NOSAUKUMS  --ifdef=NOSAUKUMS  Izvads sapludināts failā, lai rāda \"#ifdef "
-"NOSAUKUMS\"  diffs."
+"-D, --ifdef=NOSAUKUMS           izvadīt sapludināto datni ar\n"
+"                                  “#ifdef NOSAUKUMS” diff"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=GFMT  Līdzigs, bet formāts GTYPE ievades grupām ar GFMT."
+msgstr "    --GTYPE-group-format=GFMT   formatēt GTYPE ievades grupas ar GFMT"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LFMT  Līdzīgs, bet formāts visam ievades rindām ar LFMT."
+msgstr "    --line-format=LFMT          formatēt visas ievades rindas ar LFMT"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=LFMT  Līdzīgs, bet formāts LTYPE ievades rindām ir LFMT."
+msgstr "    --LTYPE-line-format=LFMT    formatēt LTYPE ievades rindām ar LFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Šīs formāta opcijas sniedz detalizētu kontroli pār diff izvadi,\n"
+"    vispārinot -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE ir \"old\", \"new\", vai \"unchanged\".  GTYPE ir LTYPE vai \"changed"
-"\"."
+"  LTYPE ir “old”, “new” vai “unchanged”.  GTYPE ir LTYPE vai “changed”."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -977,34 +1010,32 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT var saturēt:\n"
-"    %<  rindas no FAILA1\n"
-"    %>  rindas no FAILA2\n"
-"    %=  rindas kopīgas FAILĀ1 un FAILĀ2\n"
+"  GFMT (tikai) var saturēt:\n"
+"    %<  rindas no DATNE1\n"
+"    %>  rindas no DATNE2\n"
+"    %=  rindas kopīgas DATNE1 un DATNE2\n"
 "    %[-][PLATUMS][.[PREC]]{doxX}BURTS  printf-style specifikācija BURTAM\n"
 "     BURTS ir šāds jaunai grupai, mazais reģistrs vecais grupai:\n"
 "        F  pirmās rindas numurs\n"
 "        L  pēdējās rindas numurs\n"
 "        N  rindu skaits = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1    %(A=B?T:E)  ja A vienāds ar B tad T citādi E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 var saturēt:\n"
+"  LFMT (tikai) var saturēt:\n"
 "    %L  rindas saturs\n"
-"    %l  rindas saturs, izņemot atkārtojošās jaunās rindas\n"
-"    %[-][PLATUMS][.[PREC]]{doxX}n  printf-style specifikācija ievades rindu "
-"numuriem"
+"    %l  rindas saturs, izņemot sekojošās jaunās rindas rakstzīmes\n"
+"    %[-][PLATUMS][.[PREC]]{doxX}n  printf-style specifikācija ievades rindu\n"
+"       numuriem"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1015,110 +1046,126 @@ msgstr ""
 "  Gan GFMT, gan LFMT var saturēt:\n"
 "    %%  %\n"
 "    %c'C'  vienu rakstzīmi C\n"
-"    %c'\\OOO'  rakstzīmi ar oktālo kodu OOO"
+"    %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:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Mēģināt smagi atrast pašas mazākas izmaiņu kopas."
+msgstr "-d, --minimal            ļoti censties atrast mazāku izmaiņu kopu"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=SKAITS  Uzturēt SKAITU līniju kopējiem prefiksiem un "
-"sufiksiem."
+"    --horizon-lines=NUM  uzturēt NUM rindas kopējiem prefiksiem un sufiksiem"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Pieņemt, ka faili ir lieli un satur daudzas mazas "
-"izmaiņas."
+"    --speed-large-files  pieņemt, ka datnes ir lielas ar daudz mazām izmaiņām"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Izvada versijas informāciju."
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  izvada parastu diff (noklusējuma)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
-"FAILI ir \"FAILS1 FAILS2\" vai \"DIREKTORIJA1 DIREKTORIJA2\" vai "
-"\"DIREKTORIJA FAILS...\" vai \"FAILS... DIREKTORIJA\"."
 
-#: src/diff.c:942
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               parādīt šo palīdzību un iziet"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            izvada informāciju par versiju un iziet"
+
+#: src/diff.c:974
 #, 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:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
-"Ja --from-file vai --to-file ir dots, nav nekādu ierobežojumu uz FAILIEM."
+"Ja ir doti --from-file vai --to-file, nav nekādu ierobežojumu uz DATNĒM."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Ja FAILS ir \"-\", lasīt standarta ievadu"
+msgstr "Ja DATNE ir “-”, lasīt standarta ievadi."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Izmantošana: %s [OPCIJAS]... FAILI\n"
+msgstr "Lietošana: %s [OPCIJAS]... DATNES\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Salīdzina failu rindu pa rindai"
+msgstr "Salīdzina DATNES rindu pa rindai."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "konfliktējoša %s opcijas vērtība \"%s\""
+msgstr "konfliktējoša %s opcijas vērtība “%s”"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "konfliktējoša izvades stila opcijas"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "nederīgs platums “%s”"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Tikai iekš %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "nevar salīdzināt \"-\" ar direktoriju"
+msgstr "nevar salīdzināt “-” ar direktoriju"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
-msgstr "-D opcija netik atbalstīta ar direktorijām"
+msgstr "-D opcija nav atbalstīta ar direktorijām"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Kopējās apakšdirektorijas: %s un %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
-msgstr "Fails %s ir %s kamēr fails %s ir %s\n"
+msgstr "Datne %s ir %s kamēr datne %s ir %s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Faili %s un %s atšķiras\n"
+msgstr "Simboliskās saites %s un %s atšķiras\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Fails %s un %s ir identiski\n"
+msgstr "Datnes %s un %s ir identiskas\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
@@ -1131,108 +1178,105 @@ msgid "incompatible options"
 msgstr "savstarpēji nesaderīgas opcijas"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "\"-\" norādīts vairāk par vienu ievades failu"
+msgstr "“-” norādīts vairāk par vienu ievades datni"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lasīšana neizdevās"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Izvada visas izmaņas, ieliekot iekavās konfliktus."
+msgstr ""
+"-A, --show-all              izvada visas izmaņas, ieliekot iekavās konfliktus"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Izvada nesapludinātas izmaiņas no VECĀFAILĀ uz JŪSUFAILU iekš "
-"MANAFAILA."
+"-e, --ed                    izvada ed skirpta iekļautās izmaiņas\n"
+"                            no VECĀSDATNES uz JŪSUDATNI iekš MANUDATNI."
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
-"-E  --show-overlap  Izvada nesapludinātās izmaiņas, ieliekot iekavās "
-"konfliktus."
+"-E, --show-overlap          tāpat kā -e, bet ieliekot iekavās konfliktus"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Izvada nesapludinātās nepārklājušās izmaiņas."
+msgstr ""
+"-3, --easy-only             līdzīgs -e, bet iekļauj tikai nepārklājošās "
+"izmaiņas"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Izvada pārklājušas izmaiņas."
+msgstr ""
+"-x, --overlap-only          līdzīgs -e, bet iekļauj tikai pārklājošās "
+"izmaiņas"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
+"-X                          līdzīgs -x, bet ieliekot iekavās konfliktus"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Apvienot `w' un `q' komandas ed skriptā."
+msgstr "-i                          pievieno “w” un “q” komandas ed skriptā"
 
 #: src/diff3.c:438
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 izvada pašu sapludināto datni, vadoties pēc -A,\n"
+"                                ja nav dotu citu opciju"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Izturēties pret visiem failiem, kā teksta."
+msgstr "-a, --text                  uztvert visas datnes kā teksta datnes"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Noņemt atkārtojošo rakstatgrieze ievadā."
+msgstr "    --strip-trailing-cr     noņemt atkārtojošos rakstatgriezi ievadē"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Pacelt tabulācijas rindu pirm tabulācijas."
+msgstr "-T, --initial-tab           pacelt tabulācijas rindu pirms tabulācijas"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
 msgstr ""
-"--diff-program=PROGRAMMA  Izmantot PROGRAMMU, lai salīdzinātu divus failus."
+"    --diff-program=PROGRAMMA izmantot PROGRAMMU, lai salīdzinātu divas datnes"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=ETIĶETE         izmantot ETIĶETI nevis datnes nosaukumu\n"
+"                                (var atkārtot)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  parādīt šo palīdzību un iziet"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Izvada versijas informāciju."
+msgstr "-v, --version               izvada informāciju par versiju un iziet"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Izmantošana: %s [OPCIJAS]... MANSFAILS VECAISFAILS JŪSUFAILS\n"
+msgstr "Izmantošana: %s [OPCIJAS]... MANADATNE VECĀDATNE JŪSUDATNE\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
-msgstr "Salīdzināt trīs failus rindiņu pa rindiņai."
+msgstr "Salīdzināt trīs datnes rindiņu pa rindiņai."
 
 #: src/diff3.c:470
 msgid ""
@@ -1247,16 +1291,28 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"Noklusējuma izvades formāts ir daudz maz cilvēkam lasāma izmaiņu "
+"attēlojums.\n"
+"\n"
+"Opcijas -e, -E, -x, -X (un to garie varianti) liek izvadīt ed skriptu, "
+"nevis\n"
+"noklusējuma.\n"
+"\n"
+"Visbeidzot, -m (--merge) opcija liek iekšēji sapludināt diff3 un izvadīt "
+"pašu\n"
+"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:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
 msgstr ""
-"Izejas stāvoklis ir 0, ja tas ir veiksmīgs, 1 ja ir konflikts, 2 ja ir "
+"Izejas statuss ir 0, ja tas ir veiksmīgs, 1, ja ir konflikts, 2, ja ir "
 "nepatikšanas."
 
 #: src/diff3.c:675
 msgid "internal error: screwup in format of diff blocks"
-msgstr "iekšējā kļūda: grīstē saiešana diff bloku formātā"
+msgstr "iekšējā kļūda: sagāja grīstē diff bloku formāts"
 
 #: src/diff3.c:968
 #, c-format
@@ -1271,36 +1327,36 @@ msgstr "iekšējā kļūda: nederīgs diff veids iekš process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "nederīgs diff formāts; nederīgs izmaiņu atdalītājs"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "nederīgs diff formāts; nepilnīga pēdējā rinda"
+msgstr "nederīgs diff formāts; nepilnīga pēdējā rinda"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "nevarēja izsaukt palīgprogrammu \"%s\""
+msgstr "nevarēja izsaukt palīgprogrammu “%s”"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "nederīgs diff formāts; nederīgas rindas ievades rakstzīmes"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "iekšējā kļūda: nederīgs uz izvadu padotais diff veids"
+msgstr "iekšējā kļūda: nederīgs uz izvadi padotais diff veids"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
-msgstr "ievades fails saruka"
+msgstr "ievades datne saruka"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "nevar salīdzināt faila nosaukumus \"%s\" un \"%s\""
+msgstr "nevar salīdzināt datņu nosaukumus “%s” un “%s”"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr "%s: rekrusīvs direktorijas cikls"
+msgstr "%s: rekursīvs direktorijas cikls"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
@@ -1308,141 +1364,121 @@ msgid "Thomas Lord"
 msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o FAILS  --output=FAILS  Darboties interaktīvi, izvadot izvadu uz FAILU."
+"-o, --output=DATNE           darboties interaktīvi, izvadot izvadu uz DATNI"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
-"-i  --ignore-case  Uzskatīt ka augšējais un apkšējais reģistrs ir viens un "
-"tas pats."
+"-i, --ignore-case            uzskatīt ka augšējais un apakšējais reģistrs "
+"ir\n"
+"                              viens un tas pats"
 
 #: src/sdiff.c:176
-#, fuzzy
 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."
+"-E, --ignore-tab-expansion   ignorēt izmaiņas dēļ tabulācijas izplešanās"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Ignorēt visas atstarpes."
+msgstr "-Z, --ignore-trailing-space  ignorēt visas atstarpes rindu beigās"
 
 #: src/sdiff.c:178
-#, fuzzy
 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."
+msgstr "-b, --ignore-space-change    ignorēt izmaiņas dēļ atstarpēm"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Ignorēt visas atstarpes."
+msgstr "-W, --ignore-all-space       ignorēt visas atstarpes"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B  --ignore-blank-lines  Ignorēt izmaiņas rindās, kur viss ir tukšs."
+msgstr "-B, --ignore-blank-lines     ignorēt izmaiņas tukšajās rindās"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  Ignorēt izmaiņas rindās, kuras sakrīt ar "
-"RE."
+"-I, --ignore-matching-lines=RE  ignorēt izmaiņas rindās, kuras sakrīt ar RE"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Noņemt atkārtojošo rakstatgrieze ievadā."
+msgstr "    --strip-trailing-cr     noņemt atkārtojošos rakstatgriezi ievadē"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Izturēties pret visiem failiem, kā teksta."
+msgstr "-a, --text                   uztvert visas datnes kā teksta datnes"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUMURS  --width=NUMURS  Izvada līdz NUMURAM (noklusētais 130) drukas "
-"kolonas."
+"-w, --width=NUM              izvada līdz NUM (noklusējuma 130) drukas kolonas"
 
 #: src/sdiff.c:186
-#, fuzzy
 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."
+msgstr ""
+"-l, --left-column            izvadīt tikai kreiso kolonu no kopējām rindām"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Neizvadīt kopējās rindas."
+msgstr "-s, --suppress-common-lines  neizvadīt kopējās rindas"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Izplest tabulācijas atstarpi izvadā."
+msgstr ""
+"-t, --expand-tabs            pārveidot tabulācijas par atstarpēm izvadē"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUMURS  Tabulāciju apstāšanāss ir katru NUMURU (noklusētais ir 8) "
-"drukas kolonas."
+"    --tabsize=NUM            tabulāciju pietura ik NUM drukas "
+"kolonas                                          (noklusējuma ir 8)"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Mēģināt smagi atrast pašas mazākas izmaiņu kopas."
+msgstr "-d, --minimal                ļoti censties atrast mazāku izmaiņu kopu"
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Pieņemt, ka faili ir lieli un satur daudzas mazas "
-"izmaiņas."
+"-H, --speed-large-files      pieņemt, ka datnes ir lielas, daudz mazu izmaiņu"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr ""
-"--diff-program=PROGRAMMA  Izmantot PROGRAMMU, lai salīdzinātu divus failus."
+"    --diff-program=PROGRAMMA izmantot PROGRAMMU, lai salīdzinātu divas datnes"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   parādīt šo palīdzību un iziet"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Izvada versijas informāciju."
+msgstr "-v, --version                izvada informāciju par versiju un iziet"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Izmantošana: %s [OPCIJAS]... FAILS1 FAILS2\n"
+msgstr "Lietošana: %s [OPCIJAS]... DATNE1 DATNE1\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Plecu-pie-pleca failu atšķirību sapludināšana"
+msgstr "Sānu-pie-sāna datņu DATNE1 un DATNE2 atšķirību sapludināšana."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "nevar interaktīvi sapludināt standarta ievadu"
+msgstr "nevar interaktīvi sapludināt standarta ievadi"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
-msgstr "abi salīdzināmie faili ir direktorijas"
+msgstr "abas salīdzināmās datnes ir direktorijas"
 
 #: src/sdiff.c:818
 msgid ""
@@ -1468,6 +1504,16 @@ msgstr ""
 "v:\tDetalizēti iekļaut kopējās rindas.\n"
 "q:\tIziet.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: neatpazīta opcija “--%s”\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i IZLAIST1:IZLAIST2  --ignore-initial=IZLAIST1:IZLAIST2"
 
index dded17d..4ecc82f 100644 (file)
Binary files a/po/ms.gmo and b/po/ms.gmo differ
index 7c5b1c9..61093d2 100644 (file)
--- a/po/ms.po
+++ b/po/ms.po
@@ -1,21 +1,36 @@
-# Diffutils Bahasa Melayu (Malay) (ms).
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# diffutils Bahasa Melayu (Malay) (ms).
+# Copyright (C) 2003, 2015 Free Software Foundation, Inc.
 # This file is distributed under the same license as the diffutils package.
-# Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>, 2003.
+# Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>, 2003, 2015.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.7\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2005-03-29 19:43+0800\n"
-"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@myrealbox.com>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2015-09-24 17:50+0800\n"
+"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
 "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
 "Language: ms\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
+"X-Generator: Poedit 1.8.5\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "hujah tidak sah %s untuk %s"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "hujah tidak sah %s untuk %s"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -25,116 +40,169 @@ msgstr "ralat program"
 msgid "stack overflow"
 msgstr "stack melimpah"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Ralat sistem tidak diketahui"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "fail kosong biasa"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "fail biasa"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "direktori"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "fail khas blok"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "fail khas aksara"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "pautan simbolik"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "barisan mesej"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semaphore"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "objek ingatan dikongsi"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "objek memori berjenis"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "fail khas blok"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "fail khas aksara"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "fail khas blok"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "fail khas aksara"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "fail pelik"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "fail khas blok"
+
+#: 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 "soket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "fail pelik"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: pilihan `%s' adalah kabur\n"
+msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
+
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: pilihan `--%s' tidak mengizinkan hujah\n"
+msgstr "%s: pilihan `-%s' tidak mengizinkan hujah\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: pilihan `%c%s' tidak mengizinkan hujah\n"
+msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: pilihan `%s' memerlukan hujah\n"
+msgstr "Pilihan \"%s\" memerlukan hujah"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: pilihan tidak dikenali `--%s'\n"
+msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: pilihan tidak dikenali `%c%s'\n"
+msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: pilihan tidak sah -- %c\n"
+msgstr "Tetapan pilihan lekapan tidak sah: %s\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: pilihan memerlukan hujah -- %c\n"
+msgstr "Pilihan \"%s\" memerlukan hujah"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: pilihan `-W %s' adalah kabur\n"
+msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: pilihan `-W %s' tidak mengizinkan hujah\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: pilihan `%s' memerlukan hujah\n"
+msgstr "Pilihan \"%s\" memerlukan hujah"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -157,83 +225,84 @@ msgstr "%s: pilihan `%s' memerlukan hujah\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr "`"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Berjaya"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Tiada padanan"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Regular expression tidak sah"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Aksara pengumpulsemakan tidak sah"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nama kelas aksara tidak sah"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Slash dibelakang"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Rujukan belakang tidak sah"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ atau [^ tidak sepadan"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( atau \\( tidak sepadan"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ tidak sepadan"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Kandungan \\{\\} tidak sah"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Julat akhir tidak sah"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Kehabisan memori"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Regular expression awalan tidak sah"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Regular expression tamat tiba-tiba"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Regular expression terlalu besar"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") atau \\) tidak sepadan"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Tiada regular expression terdahulu"
 
@@ -243,59 +312,62 @@ msgstr "kehabisan memori"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "stdin"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "stdout"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "stderr"
 
 #: lib/xfreopen.c:38
 #, fuzzy
 msgid "unknown stream"
-msgstr "Ralat sistem tidak diketahui"
+msgstr "Tidak dapat mencipta soket aliran."
 
 #: lib/xfreopen.c:39
-#, c-format
+#, fuzzy, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "regcomp() gagal pada %s: %s."
 
 #: lib/xstrtol-error.c:63
 #, fuzzy, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "nilai --bytes `%s' tidak sah"
+msgstr "hujah tidak sah %s untuk %s"
 
 #: lib/xstrtol-error.c:68
-#, c-format
+#, fuzzy, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "hujah tidak sah %s untuk %s"
 
 #: lib/xstrtol-error.c:72
-#, c-format
+#, fuzzy, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "hujah kabur %s untuk %s"
 
 #: lib/version-etc.c:74
-#, c-format
+#, fuzzy, c-format
 msgid "Packaged by %s (%s)\n"
 msgstr ""
+"Ditulis oleh by %s, %s, %s,\n"
+"and %s.\n"
 
 #: lib/version-etc.c:77
-#, c-format
+#, fuzzy, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Ditulis oleh %s, %s, and %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:84
 msgid "(C)"
-msgstr ""
+msgstr "(C)"
 
 #: lib/version-etc.c:86
+#, fuzzy
 msgid ""
 "\n"
 "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
@@ -304,6 +376,11 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\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"
+"TIADA JAMINAN diberikan, sehingga had yang dibenarkan oleh undang-undang.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:102
@@ -418,42 +495,50 @@ 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:245
-#, c-format
+#, fuzzy, c-format
 msgid ""
 "\n"
 "Report bugs to: %s\n"
-msgstr ""
+msgstr "Lapor pepijat ke %s.\n"
 
 #: lib/version-etc.c:247
-#, c-format
+#, fuzzy, c-format
 msgid "Report %s bugs to: %s\n"
 msgstr ""
+"\n"
+"Lapor pepijat ke <%s>.\n"
 
 #: lib/version-etc.c:251
-#, c-format
+#, fuzzy, c-format
 msgid "%s home page: <%s>\n"
 msgstr ""
+"// Dijana oleh %s.\n"
+"// Lapor pepijat ke <%s>.\n"
+"// Laman utama: <%s>.\n"
+"\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "Laman web %s: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
+#, fuzzy
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
+"Bantuan umum menggunakan perisian GNU: <http://www.gnu.org/gethelp/>.\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Fail %s dan %s berbeza\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, fuzzy, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Fail %s dan %s berbeza\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Tiada baris baru pada penghujung fail"
 
@@ -465,9 +550,9 @@ msgstr "Torbjorn Granlund"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Cuba `%s --help' untuk maklumat lanjut."
@@ -482,14 +567,12 @@ msgstr "nilai `%s' --ignore-initial tidak sah"
 msgid "options -l and -s are incompatible"
 msgstr "pilihan -l dan -s tidak sepadan"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "gagal menulis"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "keluaran piawai"
 
@@ -526,16 +609,17 @@ msgstr "-n HAD  --bytes=HAD  Banding paling banyak HAD byte."
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      sekat semua keluaran normal"
 
 #: src/cmp.c:168
+#, fuzzy
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "Papar teks bantuan ini"
 
 #: src/cmp.c:169
 #, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Keluarkan maklumat versi."
+msgstr "Papar maklumat versi dan keluar"
 
 #: src/cmp.c:178
 #, c-format
@@ -554,10 +638,12 @@ msgid ""
 msgstr ""
 "LANGKAU1 dan LANGKAU2 adalah jumlah byte untuk dilangkau dalam setiap fail."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
+#, fuzzy
 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:191
 msgid ""
@@ -574,7 +660,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Jika FAIL adalah `-' atau tiada, baca masukan piawai."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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 "
@@ -585,27 +671,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "nilai --bytes `%s' tidak sah"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "operan hilang selepas `%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "operan tambahan `%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s berbeza: byte %s, baris %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF pada %s\n"
@@ -613,207 +699,233 @@ msgstr "cmp: EOF pada %s\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "panjang konteks `%s' tidak sah"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "pagination tidak disokong pada hos ini"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "terlalu banyak pilihan label fail"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "lebar `%s' tidak sah"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "pilihan lebar berkonflik"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "panjang horizon `%s' tidak sah"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "saiz tab `%s' tidak sah"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "pilihan saiz tab berkonflik"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "--from-file dan --to-file kedua-duanya dinyatakan"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Keluarkan diff normal."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Keluaran hanya jika fail berbeza."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  Lapor apabila dua fail adalah sama."
 
-#: src/diff.c:857
+#: src/diff.c:886
+#, fuzzy
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c  -C NOM  --context[=NOM]  Keluarkan NOM (default 3) baris konteks yang "
+"disalin.\n"
+"-u  -U NOM  --unified[=NOM]  Keluarkan NOM (default 3) baris konteks "
+"tergabung.\n"
+"  --label LABEL  Guna LABEL selain daripada nama fail.\n"
+"  -p  --show-c-function  Papar fungsi C yang mana dalam setiap perubahan.\n"
+"  -F RE  --show-function-line=RE  Papar baris terbaru sepadan RE."
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w NOM  --width=NOM  Keluarkan paling banyak NOM (default 130) lajur cetakan."
+"-c  -C NOM  --context[=NOM]  Keluarkan NOM (default 3) baris konteks yang "
+"disalin.\n"
+"-u  -U NOM  --unified[=NOM]  Keluarkan NOM (default 3) baris konteks "
+"tergabung.\n"
+"  --label LABEL  Guna LABEL selain daripada nama fail.\n"
+"  -p  --show-c-function  Papar fungsi C yang mana dalam setiap perubahan.\n"
+"  -F RE  --show-function-line=RE  Papar baris terbaru sepadan RE."
 
-#: src/diff.c:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Keluarkan skrip ed."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Keluarkan diff format RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            keluaran dalam dua lajur"
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-w NOM  --width=NOM  Keluarkan paling banyak NOM (default 130) lajur cetakan."
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column  Keluarkan hanya lajur kiri baris yang sama."
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  Jangan keluarkan baris sama."
 
-#: src/diff.c:866
+#: src/diff.c:895
+#, fuzzy
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
+"-c  -C NOM  --context[=NOM]  Keluarkan NOM (default 3) baris konteks yang "
+"disalin.\n"
+"-u  -U NOM  --unified[=NOM]  Keluarkan NOM (default 3) baris konteks "
+"tergabung.\n"
+"  --label LABEL  Guna LABEL selain daripada nama fail.\n"
+"  -p  --show-c-function  Papar fungsi C yang mana dalam setiap perubahan.\n"
+"  -F RE  --show-function-line=RE  Papar baris terbaru sepadan RE."
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
-msgstr ""
+msgstr "-F, --show-function-line=RE   papar baris paling terkini sepadan RE"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
-msgstr ""
+msgstr "-L LABEL  --label=LABEL  Guna LABEL selain daripada nama fail."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Kembang tab kepada ruang dalam keluaran."
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 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:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=NOM  Hentian tab setial NOM (default 8) lajur cetakan."
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate  Salur keluaran menerusi `pr' untuk paginate."
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r  --recursive  Banding berulang-ulang sebarang subdirektori yang dijumpai."
 
-#: src/diff.c:878
+#: src/diff.c:907
+#, fuzzy
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "Jangan ikut pautan simbolik, tulisemula"
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Anggap fail tidak wujud sebagai kosong."
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "--unidirectional-new-file  Anggap fail tidak wujud sebagai kosong."
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 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:882
+#: src/diff.c:911
 #, fuzzy
 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:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x PAT  --exclude=PAT  Asing fail yang sepadan PAT."
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -821,14 +933,14 @@ msgstr ""
 "-X FAIL  --exclude-from=FAIL  Asing fail yang sepadan sebarang corak dalam "
 "FAIL."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S FAIL  --starting-file=FAIL  Mula dengan FAIL apabila membanding direktori."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -837,7 +949,7 @@ msgstr ""
 "--from-file=FAIL1  Banding FAIL1 kepada semua operan.  FAIL1 boleh jadi "
 "direktori."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -846,35 +958,35 @@ msgstr ""
 "--to-file=FAIL2  Banding semua operan kepada FAIL2.  FAIL2 boleh jadi "
 "direktori."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i  --ignore-case  Abai perbezaan case dalam kandungan fail."
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Abai perubahan diakibatkan oleh pengembangan tab."
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  Abai semua ruang putih."
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 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:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  Abai semua ruang putih."
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
@@ -882,29 +994,29 @@ msgstr ""
 "-B  --ignore-blank-lines  Abai perubahan dimana baris adalah kesemuanya "
 "kosong."
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I RE  --ignore-matching-lines=RE  Abai perubahan dimana baris semua sepadan "
 "RE."
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Layan semua fail sebagai teks."
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  Buang enter penghujung pada masukan."
 
-#: src/diff.c:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Baca dan tulis data dalam mod binari."
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -912,41 +1024,41 @@ msgstr ""
 "-D NAMA  --ifdef=NAMA  Keluarkan fail tergabung untuk menunjukkan perbezaa "
 "`#ifdef NAMA'."
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--GTYPE-group-format=GFMT  Hampir sama, tetapi format masukan GTYPE "
 "dikumpulkan dengan GFMT."
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "--line-format=LFMT  Hampir sama, tetapi format semua baris masukan dengan "
 "LFMT."
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "--LTYPE-line-format=LFMT  Hampir sama, tetapi format baris masukan LTYPE "
 "dengan LFMT."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 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:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -975,7 +1087,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -988,7 +1100,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:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1002,102 +1114,127 @@ msgstr ""
 "    %c'C'  satu aksara C\n"
 "    %c'\\OOO'  aksara dengan kod oktal OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 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:935
+#: src/diff.c:964
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=NOM  Pastikan NOM baris prefix dan suffix sama."
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  Anggap fail besar dan banyak perubahan kecil "
-"tersebar."
+"--speed-large-files  Anggap fail besar dan banyak perubahan kecil tersebar."
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Keluarkan diff normal."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:971
+#, fuzzy
+msgid "    --help               display this help and exit"
+msgstr "Papar teks bantuan ini"
+
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Keluarkan maklumat versi."
+msgstr "Papar maklumat versi dan keluar"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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:942
+#: src/diff.c:975
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "Jika --from-file atau --to-file diberi, tiada sekatan pada FAIL."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "Jika FAIL adalah `-', baca masukan piawai."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Penggunaan: %s [PILIHAN]... FAIL\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Banding fail setiap baris."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "nilai pilihan %s berkonflik `%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "pilihan gaya keluaran berkonflik"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "lebar `%s' tidak sah"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Hanya dalam %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "tidak dapat membandingkan `-' kepada direktori"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "pilihan -D tidak disokong dengan direktori"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirektori umum: %s dan %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Fail %s dan %s berbeza\n"
+msgstr "%s bukan fail biasa atau pautan simbolik."
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Fail %s dan %s adalah serupa\n"
@@ -1105,7 +1242,7 @@ msgstr "Fail %s dan %s adalah serupa\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Randy Smith"
 
 #: src/diff3.c:313
 #, c-format
@@ -1117,7 +1254,7 @@ msgstr "pilihan tidak sepadan"
 msgid "'-' specified for more than one input file"
 msgstr "`-' dinyatakan untuk lebih daripada satu fail masukan"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "gagal membaca"
@@ -1198,13 +1335,14 @@ msgid ""
 msgstr ""
 
 #: src/diff3.c:448
+#, fuzzy
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "Papar teks bantuan ini"
 
 #: src/diff3.c:449
 #, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Keluarkan maklumat versi."
+msgstr "Papar maklumat versi dan keluar"
 
 #: src/diff3.c:458
 #, c-format
@@ -1251,41 +1389,41 @@ msgstr "ralat dalaman: jenis diff tidak sah dalam process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "format diff tidak sah; pengasing perbezaan tidak sah"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "format diff tidak sah; baris akhir tidak lengkap"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "program subsidiari `%s' tidak dapat dilaksanakan"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "format diff tidak sah; aksara awal baris tidak betul"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "ralat dalaman: jenis diff tidak sah diberikan kepada keluaran"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "fail masukan mengecil"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "tidak dapat membandingkan fail bernama `%s' dan `%s'"
 
-#: src/dir.c:209
-#, c-format
+#: src/dir.c:225
+#, fuzzy, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "\"%s\" adalah sebuah direktori"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
 #, fuzzy
@@ -1320,7 +1458,7 @@ msgstr "-b  --ignore-space-change  Abai perubahan dalam jumlah ruang putih."
 #: src/sdiff.c:179
 #, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Abai semua ruang putih."
+msgstr "-w  --ignore-all-space  Abai semua ruang putih."
 
 #: src/sdiff.c:180
 #, fuzzy
@@ -1394,13 +1532,14 @@ msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
 msgstr "--diff-program=PROGRAM  Guna PROGRAM untuk membanding fail."
 
 #: src/sdiff.c:196
+#, fuzzy
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "Papar teks bantuan ini"
 
 #: src/sdiff.c:197
 #, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Keluarkan maklumat versi."
+msgstr "Papar maklumat versi dan keluar"
 
 #: src/sdiff.c:206
 #, c-format
@@ -1446,91 +1585,12 @@ msgstr ""
 "v:\tSertakan baris sama dengan berjela.\n"
 "q:\tKeluar.\n"
 
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: pilihan salah  -- %c\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 perisian bebas; lihat sumber untuk syarat menyalin.  TIADA "
-#~ "jaminan disediakan;\n"
-#~ "tidak juga untuk KEBOLEHDAGANGAN atau KEUPAYAAN UNTUK SESUATU TUJUAN "
-#~ "KHUSUS.\n"
-
-#~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-#~ msgstr "-i LANGKAU1:LANGKAU2  --ignore-initial=LANGKAU1:LANGKAU2"
-
-#~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
-#~ msgstr ""
-#~ "-s  --quiet  --silent  Tiada keluaran; hasilkan status keluaran sahaja."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help  Keluarkan bantuan ini."
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr "Lapor pepijat kepada <bug-gnu-utils@gnu.org>."
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "pilihan `-%ld' tidak lagi digunakan; guna `-%c %ld'"
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "pilihan `-%ld' tidak lagi digunakan; abaikannya"
-
-#~ 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 NOM  --context[=NOM]  Keluarkan NOM (default 3) baris konteks yang "
-#~ "disalin.\n"
-#~ "-u  -U NOM  --unified[=NOM]  Keluarkan NOM (default 3) baris konteks "
-#~ "tergabung.\n"
-#~ "  --label LABEL  Guna LABEL selain daripada nama fail.\n"
-#~ "  -p  --show-c-function  Papar fungsi C yang mana dalam setiap "
-#~ "perubahan.\n"
-#~ "  -F RE  --show-function-line=RE  Papar baris terbaru sepadan 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  Keluaran dalam dua lajur.\n"
-#~ "  -W NOM  --width=NOM  Keluarkan paling banyak NOM (default 130) lajur "
-#~ "cetakan.\n"
-#~ "  --left-column  Keluarkan hanya lajur kiri pada baris sama.\n"
-#~ "  --suppress-common-lines  Jangan keluarkan baris sama."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  Anggap fail besar dan banyak perubahan kecil "
-#~ "tersebar."
-
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Keluarkan perubahan bertindih, kurungkan mereka."
-
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
-#~ msgstr ""
-#~ "-m  --merge  Keluarkan fail tergabung selain daripada skrip ed (default -"
-#~ "A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L LABEL  --label=LABEL  Guna LABEL selain daripada nama fail."
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "program subsidiari `%s' tidak dijumpai"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "program subsidiari `%s' gagal"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "program subsidiari `%s' gagal (status keluar %d)"
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: pilihan '%s' adalah kabur; kemungkinan:"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
diff --git a/po/nb.gmo b/po/nb.gmo
new file mode 100644 (file)
index 0000000..23201eb
Binary files /dev/null and b/po/nb.gmo differ
diff --git a/po/nb.po b/po/nb.po
new file mode 100644 (file)
index 0000000..246df32
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,1531 @@
+# Norwegian bokmål translation of GNU diffutils
+# Copyright (C) 2000, 2012 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
+# Åka Sikrom <a4@hush.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: diffutils-3.3-pre1\n"
+"Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2015-01-23 18:51+0100\n"
+"Last-Translator: Åka Sikrom <a4@hush.com>\n"
+"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"Language: nb\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "%s%s-argumentet «%s» er ugyldig"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "%s%s-argumentet «%s» er ugyldig"
+
+#: lib/c-stack.c:204 lib/c-stack.c:297
+msgid "program error"
+msgstr "programfeil"
+
+#: lib/c-stack.c:205 lib/c-stack.c:298
+msgid "stack overflow"
+msgstr "stabel er full"
+
+#: lib/error.c:191
+msgid "Unknown system error"
+msgstr "Ukjent systemfeil"
+
+#: lib/file-type.c:40
+msgid "regular empty file"
+msgstr "vanlig tom fil"
+
+#: lib/file-type.c:40
+msgid "regular file"
+msgstr "vanlig fil"
+
+#: lib/file-type.c:43
+msgid "directory"
+msgstr "mappe"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "symbolsk lenke"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "meldingskø"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "semafor"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "delt minneobjekt"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "typebestemt minneobjekt"
+
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "blokk-spesialfil"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "tegn-spesialfil"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "blokk-spesialfil"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "tegn-spesialfil"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "rar fil"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "blokk-spesialfil"
+
+#: 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 "sokkel"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
+msgid "weird file"
+msgstr "rar fil"
+
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
+msgid "%s: option '%s' is ambiguous; possibilities:"
+msgstr "%s: valget «%s» er flertydig, og kan bety følgende:"
+
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: valget «-W %s» er flertydig\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: valget «--%s» tillater ikke argumenter\n"
+
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: valget «%c%s» tillater ikke argumenter\n"
+
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: krever «--%s» krever et argument\n"
+
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: «--%s» er et ukjent valg\n"
+
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: «%c%s» er et ukjent valg\n"
+
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: «%c» er et ugyldig valg\n"
+
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: valget -- «%c» krever et argument\n"
+
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: valget «-W %s» er flertydig\n"
+
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: valget «-W %s» tillater ikke argumenter\n"
+
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: valget «-W %s» krever et argument\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
+#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+#. and use glyphs suitable for your language.
+#: lib/quotearg.c:347
+msgid "`"
+msgstr "«"
+
+#: lib/quotearg.c:348
+msgid "'"
+msgstr "»"
+
+#: lib/regcomp.c:135
+msgid "Success"
+msgstr "Fullført"
+
+#: lib/regcomp.c:138
+msgid "No match"
+msgstr "Ingen treff"
+
+#: lib/regcomp.c:141
+msgid "Invalid regular expression"
+msgstr "Ugyldig regulært uttrykk"
+
+#: lib/regcomp.c:144
+msgid "Invalid collation character"
+msgstr "Ugyldig sorteringstegn"
+
+#: lib/regcomp.c:147
+msgid "Invalid character class name"
+msgstr "Ugyldig tegnklassenavn"
+
+#: lib/regcomp.c:150
+msgid "Trailing backslash"
+msgstr "Etterfølgende omvendt skråstrek"
+
+#: lib/regcomp.c:153
+msgid "Invalid back reference"
+msgstr "Ugyldig tilbakereferanse"
+
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
+msgstr "Ingen treff på «[» eller «[^»"
+
+#: lib/regcomp.c:159
+msgid "Unmatched ( or \\("
+msgstr "Ingen treff på «(» eller «\\(»"
+
+#: lib/regcomp.c:162
+msgid "Unmatched \\{"
+msgstr "Ingen treff på «\\{{»"
+
+#: lib/regcomp.c:165
+msgid "Invalid content of \\{\\}"
+msgstr "Ugyldig innhold i «\\{\\}»"
+
+#: lib/regcomp.c:168
+msgid "Invalid range end"
+msgstr "Ugyldig slutt på rekkevidde"
+
+#: lib/regcomp.c:171
+msgid "Memory exhausted"
+msgstr "Minnet er fullt"
+
+#: lib/regcomp.c:174
+msgid "Invalid preceding regular expression"
+msgstr "Ugyldig foregående regulært uttrykk"
+
+#: lib/regcomp.c:177
+msgid "Premature end of regular expression"
+msgstr "For tidlig slutt på regulært uttrykk"
+
+#: lib/regcomp.c:180
+msgid "Regular expression too big"
+msgstr "Regulært uttrykk er for stort"
+
+#: lib/regcomp.c:183
+msgid "Unmatched ) or \\)"
+msgstr "Ingen treff på «)» eller «\\)»"
+
+#: lib/regcomp.c:687
+msgid "No previous regular expression"
+msgstr "Intet tidligere regulært uttrykk"
+
+#: lib/xalloc-die.c:34
+msgid "memory exhausted"
+msgstr "minnet er fullt"
+
+#: lib/xfreopen.c:35
+msgid "stdin"
+msgstr "std.innkanal"
+
+#: lib/xfreopen.c:36
+msgid "stdout"
+msgstr "std.utkanal"
+
+#: lib/xfreopen.c:37
+msgid "stderr"
+msgstr "std.feilkanal"
+
+#: lib/xfreopen.c:38
+msgid "unknown stream"
+msgstr "ukjent strøm"
+
+#: lib/xfreopen.c:39
+#, c-format
+msgid "failed to reopen %s with mode %s"
+msgstr "klarte ikke å åpne %s på nytt med modus %s"
+
+#: lib/xstrtol-error.c:63
+#, c-format
+msgid "invalid %s%s argument '%s'"
+msgstr "%s%s-argumentet «%s» er ugyldig"
+
+#: lib/xstrtol-error.c:68
+#, c-format
+msgid "invalid suffix in %s%s argument '%s'"
+msgstr "ugyldig suffiks i %s%s-argument «%s»"
+
+#: lib/xstrtol-error.c:72
+#, c-format
+msgid "%s%s argument '%s' too large"
+msgstr "%s%s-argumentet «%s» er for stort"
+
+#: lib/version-etc.c:74
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakket av %s (%s)\n"
+
+#: lib/version-etc.c:77
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Pakket av %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:84
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:86
+msgid ""
+"\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl."
+"html>.\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"
+msgstr ""
+"\n"
+"Lisens GPLv3+: GNU GPL versjon 3 eller senere <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Dette er fri programvare. Du kan endre den og dele den videre.\n"
+"Det stilles INGEN GARANTI, i den grad dette tillates av gjeldende lovverk.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: lib/version-etc.c:102
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Skrevet av %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:106
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Skrevet av %s og %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:110
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Skrevet av %s, %s og %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:117
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s\n"
+"og %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:124
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s og %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:131
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s, %s og %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:139
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s, %s, %s og %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:147
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"og %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:156
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s og %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:167
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Skrevet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s og andre.\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:245
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Rapporter programfeil til: %s\n"
+"Rapporter oversettelsesfeil til: <i18n-no@lister.ping.uio.no>\n"
+
+#: lib/version-etc.c:247
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Rapporter programfeil i %s til: %s\n"
+
+#: lib/version-etc.c:251
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Nettside for %s: <%s>\n"
+
+#: lib/version-etc.c:253
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "Nettside for %s: <http://www.gnu.org/software/%s/>\n"
+
+#: lib/version-etc.c:256
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgstr ""
+"Generell hjelp til å bruke GNU-programmer: <http://www.gnu.org/gethelp/>\n"
+
+#: src/analyze.c:454 src/diff.c:1393
+#, c-format
+msgid "Files %s and %s differ\n"
+msgstr "Filene %s og %s er ulike\n"
+
+#: src/analyze.c:455
+#, c-format
+msgid "Binary files %s and %s differ\n"
+msgstr "Binærfilene %s og %s er ulike\n"
+
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
+msgid "No newline at end of file"
+msgstr "Intet linjeskift i slutten av fila"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:43
+msgid "Torbjorn Granlund"
+msgstr "Torbjörn Granlund"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/cmp.c:44
+msgid "David MacKenzie"
+msgstr "David MacKenzie"
+
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
+msgid "Try '%s --help' for more information."
+msgstr "Prøv «%s --help» for ytterligere informasjon."
+
+#: src/cmp.c:137
+#, c-format
+msgid "invalid --ignore-initial value '%s'"
+msgstr "«%s» er en ugyldig verdi for «--ignore-initial»"
+
+#: src/cmp.c:147
+#, c-format
+msgid "options -l and -s are incompatible"
+msgstr "valgene «-l» og «-s» kan ikke brukes samtidig"
+
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
+msgid "write failed"
+msgstr "skriving mislyktes"
+
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
+msgid "standard output"
+msgstr "standardutdata"
+
+#: src/cmp.c:161
+msgid "-b, --print-bytes          print differing bytes"
+msgstr "-b, --print-bytes          skriv ut byte som er ulike"
+
+#: src/cmp.c:162
+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:163
+msgid ""
+"-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
+"                                      first SKIP2 bytes of FILE2"
+msgstr ""
+"-i, --ignore-initial=ANT1:ANT2  hopp over første valgt ANT1 byte i FIL1 og\n"
+"                                      ANT2 byte i FIL2"
+
+#: src/cmp.c:165
+msgid ""
+"-l, --verbose              output byte numbers and differing byte values"
+msgstr ""
+"-l, --verbose              skriv ut byte-nummer og avvikende byte-verdier"
+
+#: src/cmp.c:166
+msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
+msgstr "-n, --bytes=ANT          ikke sammenlikn flere enn valgt ANTall byte"
+
+#: src/cmp.c:167
+msgid "-s, --quiet, --silent      suppress all normal output"
+msgstr "-s, --quiet, --silent      ikke skriv ut vanlig utdata"
+
+#: src/cmp.c:168
+msgid "    --help                 display this help and exit"
+msgstr "    --help                 vis denne hjelpeteksten og avslutt"
+
+#: src/cmp.c:169
+msgid "-v, --version              output version information and exit"
+msgstr "-v, --version              skriv ut versjonsinformasjon og avslutt"
+
+#: src/cmp.c:178
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
+msgstr "Bruk: %s [VALG] … FIL1 [FIL2 [ANT1 [ANT2]]]\n"
+
+#: src/cmp.c:180
+msgid "Compare two files byte by byte."
+msgstr "Sammenlikn to filer byte for byte."
+
+#: src/cmp.c:182
+msgid ""
+"The optional SKIP1 and SKIP2 specify the number of bytes to skip\n"
+"at the beginning of each file (zero by default)."
+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:185 src/diff.c:989 src/diff3.c:462 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:191
+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 ""
+"ANT-verdier kan etterfølges av følgende multipliseringsuttrykk:\n"
+"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:194
+msgid "If a FILE is '-' or missing, read standard input."
+msgstr "Hvis FIL er tom eller «-», leser programmet standard inndata."
+
+#: src/cmp.c:195 src/diff.c:977 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:240
+#, c-format
+msgid "invalid --bytes value '%s'"
+msgstr "«%s» er en ugyldig verdi for «--bytes»"
+
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
+msgid "missing operand after '%s'"
+msgstr "operand mangler etter «%s»"
+
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
+msgid "extra operand '%s'"
+msgstr "ekstra operand «%s»"
+
+#: src/cmp.c:494
+#, c-format
+msgid "%s %s differ: byte %s, line %s\n"
+msgstr "%s %s er ulike: byte %s, linje %s\n"
+
+#: src/cmp.c:510
+#, 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:562
+#, c-format
+msgid "cmp: EOF on %s\n"
+msgstr "cmp: EOF ved %s\n"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:49
+msgid "Paul Eggert"
+msgstr "Paul Eggert"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:50
+msgid "Mike Haertel"
+msgstr "Mike Haertel"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:51
+msgid "David Hayes"
+msgstr "David Hayes"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:52
+msgid "Richard Stallman"
+msgstr "Richard Stallman"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/diff.c:53
+msgid "Len Tower"
+msgstr "Len Tower"
+
+#: src/diff.c:351
+#, c-format
+msgid "invalid context length '%s'"
+msgstr "«%s» er en ugyldig kontekstlengde"
+
+#: src/diff.c:434
+#, c-format
+msgid "pagination not supported on this host"
+msgstr "sidedeling støttes ikke på denne verten"
+
+#: src/diff.c:449 src/diff3.c:300
+#, c-format
+msgid "too many file label options"
+msgstr "for mange filetikett-valg"
+
+#: src/diff.c:526
+#, c-format
+msgid "invalid width '%s'"
+msgstr "«%s» er en ugyldig bredde"
+
+#: src/diff.c:530
+msgid "conflicting width options"
+msgstr "breddevalg i konflikt"
+
+#: src/diff.c:555
+#, c-format
+msgid "invalid horizon length '%s'"
+msgstr "«%s» er en ugyldig horisontlengde"
+
+#: src/diff.c:611
+#, c-format
+msgid "invalid tabsize '%s'"
+msgstr "«%s» er en ugyldig tabulatorstørrelse"
+
+#: src/diff.c:615
+msgid "conflicting tabsize options"
+msgstr "tabulatorvalg i konflikt"
+
+#: src/diff.c:763
+msgid "--from-file and --to-file both specified"
+msgstr "du har valgt både «--from-file» og «--to-file»"
+
+#: src/diff.c:883
+msgid "    --normal                  output a normal diff (the default)"
+msgstr ""
+"    --normal                  skriv ut en normal diff (dette er standard)"
+
+#: src/diff.c:884
+msgid "-q, --brief                   report only when files differ"
+msgstr "-q, --brief                   bare rapporter når filer er ulike"
+
+#: src/diff.c:885
+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:886
+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:887
+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:888
+msgid "-e, --ed                      output an ed script"
+msgstr "-e, --ed                      skriv ut et ed-skript"
+
+#: src/diff.c:889
+msgid "-n, --rcs                     output an RCS format diff"
+msgstr "-n, --rcs                     skriv ut diff i RCS-format"
+
+#: src/diff.c:890
+msgid "-y, --side-by-side            output in two columns"
+msgstr "-y, --side-by-side            skriv ut i to kolonner"
+
+#: src/diff.c:891
+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:892
+msgid ""
+"    --left-column             output only the left column of common lines"
+msgstr ""
+"    --left-column             bare skriv ut venstre kolonne med vanlige "
+"linjer"
+
+#: src/diff.c:893
+msgid "    --suppress-common-lines   do not output common lines"
+msgstr "    --suppress-common-lines   ikke skriv ut vanlige linjer"
+
+#: src/diff.c:895
+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:896
+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:897
+#, fuzzy
+msgid ""
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
+"                                (can be repeated)"
+msgstr ""
+"    --label ETIK             bruk valgt ETIKett i stedet for filnavn\n"
+"                                (dette kan gjentas)"
+
+#: src/diff.c:900
+msgid "-t, --expand-tabs             expand tabs to spaces in output"
+msgstr ""
+"-t, --expand-tabs             utvid tabulatorer til mellomrom på utskrift"
+
+#: src/diff.c:901
+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:902
+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:903
+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:904
+msgid "-l, --paginate                pass output through 'pr' to paginate it"
+msgstr "-l, --paginate                del utdata i sider via «pr»"
+
+#: src/diff.c:906
+msgid ""
+"-r, --recursive                 recursively compare any subdirectories found"
+msgstr "-r, --recursive                 sammenlikn evt. undermapper rekursivt"
+
+#: src/diff.c:907
+msgid "    --no-dereference            don't follow symbolic links"
+msgstr "    --no-dereference            ikke følg symbolske lenker"
+
+#: src/diff.c:908
+msgid "-N, --new-file                  treat absent files as empty"
+msgstr "-N, --new-file                  behandle fraværende filer som tomme"
+
+#: src/diff.c:909
+msgid "    --unidirectional-new-file   treat absent first files as empty"
+msgstr "    --unidirectional-new-file   behandle fraværende førstefil som tom"
+
+#: src/diff.c:910
+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:911
+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:912
+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:913
+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:914
+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:915
+msgid ""
+"    --from-file=FILE1           compare FILE1 to all operands;\n"
+"                                  FILE1 can be a directory"
+msgstr ""
+"    --from-file=FIL1           sammenlikn FIL1 med alle operand-er\n"
+"                                  (FIL1 kan være en mappe)"
+
+#: src/diff.c:917
+msgid ""
+"    --to-file=FILE2             compare all operands to FILE2;\n"
+"                                  FILE2 can be a directory"
+msgstr ""
+"    --to-file=FIL2             sammenlikn alle operand-er med FIL2\n"
+"                                  (FIL2 kan være en mappe)"
+
+#: src/diff.c:920
+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:921
+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:922
+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:923
+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:924
+msgid "-w, --ignore-all-space          ignore all white space"
+msgstr "-w, --ignore-all-space          ignorer alle blanktegn"
+
+#: src/diff.c:925
+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:926
+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:928
+msgid "-a, --text                      treat all files as text"
+msgstr "-a, --text                      behandle filer som tekst"
+
+#: src/diff.c:929
+msgid "    --strip-trailing-cr         strip trailing carriage return on input"
+msgstr ""
+"    --strip-trailing-cr         fjern etterfølgende linjeskift-tegn fra "
+"inndata"
+
+#: src/diff.c:931
+msgid "    --binary                    read and write data in binary mode"
+msgstr "    --binary                    les og skriv data i binærmodus"
+
+#: src/diff.c:934
+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:935
+msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
+msgstr "    --GTYPE-group-format=GFMT   formater GTYPE-inndatagrupper med GFMT"
+
+#: src/diff.c:936
+msgid "    --line-format=LFMT          format all input lines with LFMT"
+msgstr "    --line-format=LFMT          formater inndatalinjer med LFMT"
+
+#: src/diff.c:937
+msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
+msgstr "    --LTYPE-line-format=LFMT    formater LTYPE-inndatalinjer med LFMT"
+
+#: src/diff.c:938
+msgid ""
+"  These format options provide fine-grained control over the output\n"
+"    of diff, generalizing -D/--ifdef."
+msgstr ""
+"  Disse formatvalgene gjør det mulig å detaljstyre utdata\n"
+"    fra diff, og generaliserer -D/--ifdef."
+
+#: src/diff.c:940
+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:941
+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 (alene) kan inneholde følgende:\n"
+"    %<  linjer fra FIL1\n"
+"    %>  linjer fra FIL2\n"
+"    %=  linjer som finnes i både FIL1 og FIL2\n"
+"    %[-][BREDDE][.[PREC]]{doxX}BOKST  spesifikasjon av BOKSTav i printf-"
+"stil.\n"
+"      BOKSTaver kan være som følger for ny gruppe (bruk små bokstaver for "
+"gammel gruppe):\n"
+"        F  første linjenummer\n"
+"        L  siste linjenummer\n"
+"        N  antall linjer = L-F+1\n"
+"        E  F-1\n"
+"        M  L+1\n"
+"    %(A=B?T:E)  hvis A er lik B, så T eller E"
+
+#: src/diff.c:953
+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 (alene) kan inneholde følgende:\n"
+"    %L  linjeinnhold\n"
+"    %l  linjeinnhold, unntatt evt. etterfølgende linjeskift\n"
+"    %[-][BREDDE][.[PREC]]{doxX}n  spesifikasjon av inndata-linjenummer i "
+"printf-stil"
+
+#: src/diff.c:957
+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 ""
+"  Både GFMT og LFMT kan inneholde følgende:\n"
+"    %%  %\n"
+"    %c'C'  enkelttegnet C\n"
+"    %c'\\OOO'  tegnet med oktalkode OOO\n"
+"    C    tegnet C (andre tegn representerer seg selv)"
+
+#: src/diff.c:963
+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:964
+msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
+msgstr ""
+"    --horizon-lines=ANT  behold valgt ANTall linjer av vanlig pre- og suffiks"
+
+#: src/diff.c:965
+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:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"    --normal                  skriv ut en normal diff (dette er standard)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               vis denne hjelpeteksten og avslutt"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            vis versjonsinformasjon og avslutt"
+
+#: src/diff.c:974
+#, fuzzy
+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:975
+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:976 src/diff3.c:481 src/sdiff.c:219
+msgid "If a FILE is '-', read standard input."
+msgstr "Programmet leser fra standard inndata hvis FIL er «-»."
+
+#: src/diff.c:986
+#, c-format
+msgid "Usage: %s [OPTION]... FILES\n"
+msgstr "Bruk: %s [VALG] … FILER\n"
+
+#: src/diff.c:987
+msgid "Compare FILES line by line."
+msgstr "Sammenlikn FILER linje for linje."
+
+#: src/diff.c:1021
+#, c-format
+msgid "conflicting %s option value '%s'"
+msgstr "valget %s er i konflikt med verdien «%s»"
+
+#: src/diff.c:1034
+#, c-format
+msgid "conflicting output style options"
+msgstr "utdata-stilvalg er i konflikt med hverandre"
+
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "«%s» er en ugyldig bredde"
+
+#: src/diff.c:1106 src/diff.c:1316
+#, c-format
+msgid "Only in %s: %s\n"
+msgstr "Bare i %s: %s\n"
+
+#: src/diff.c:1240
+msgid "cannot compare '-' to a directory"
+msgstr "du kan ikke sammenlikne «-» med en mappe"
+
+#: src/diff.c:1275
+msgid "-D option not supported with directories"
+msgstr "valget «-D» støttes ikke for mapper"
+
+#: src/diff.c:1284
+#, c-format
+msgid "Common subdirectories: %s and %s\n"
+msgstr "Vanlige undermapper: %s og %s\n"
+
+#: src/diff.c:1326 src/diff.c:1376
+#, 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:1362
+#, c-format
+msgid "Symbolic links %s and %s differ\n"
+msgstr "De symbolske lenkene %s og %s er ulike\n"
+
+#: src/diff.c:1449
+#, 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:41
+msgid "Randy Smith"
+msgstr "Randy Smith"
+
+#: src/diff3.c:313
+#, c-format
+msgid "incompatible options"
+msgstr "gjeldende valg kan ikke brukes samtidig"
+
+#: src/diff3.c:353
+msgid "'-' specified for more than one input file"
+msgstr "«-» er valgt for flere enn én inndatafil"
+
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
+#: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
+msgid "read failed"
+msgstr "lesing mislyktes"
+
+#: src/diff3.c:428
+msgid "-A, --show-all              output all changes, bracketing conflicts"
+msgstr ""
+"-A, --show-all              skriv ut alle endringer, med konflikter i "
+"parentes"
+
+#: src/diff3.c:430
+msgid ""
+"-e, --ed                    output ed script incorporating changes\n"
+"                                from OLDFILE to YOURFILE into MYFILE"
+msgstr ""
+"-e, --ed                    skriv ut ed-skript med endringer\n"
+"                                mellom GAMMELFIL og NYFIL til FIL"
+
+#: src/diff3.c:432
+msgid "-E, --show-overlap          like -e, but bracket conflicts"
+msgstr ""
+"-E, --show-overlap          likner «-e», men viser konflikter i parentes"
+
+#: src/diff3.c:433
+msgid ""
+"-3, --easy-only             like -e, but incorporate only nonoverlapping "
+"changes"
+msgstr ""
+"-3, --easy-only             likner «-e», men tar ikke med endringer som "
+"overlapper hverandre"
+
+#: src/diff3.c:434
+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:435
+msgid "-X                          like -x, but bracket conflicts"
+msgstr ""
+"-X                          likner «-x», men viser også konflikter i parentes"
+
+#: src/diff3.c:436
+msgid "-i                          append 'w' and 'q' commands to ed scripts"
+msgstr ""
+"-i                          legg til kommandoene «w» og «q» i ed-skript"
+
+#: src/diff3.c:438
+msgid ""
+"-m, --merge                 output actual merged file, according to\n"
+"                                -A if no other options are given"
+msgstr ""
+"-m, --merge                 skriv ut sammenslått fil ihht. «-A»,\n"
+"                                med mindre noe annet er valgt"
+
+#: src/diff3.c:441
+msgid "-a, --text                  treat all files as text"
+msgstr "-a, --text                  behandle filer som tekst"
+
+#: src/diff3.c:442
+msgid "    --strip-trailing-cr     strip trailing carriage return on input"
+msgstr ""
+"    --strip-trailing-cr     fjern etterfølgende linjeskift-tegn fra inndata"
+
+#: src/diff3.c:443
+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:444
+msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
+msgstr "    --diff-program=PROGRAM  bruk valgt PROGRAM til å sammenlikne filer"
+
+#: src/diff3.c:445
+msgid ""
+"-L, --label=LABEL           use LABEL instead of file name\n"
+"                                (can be repeated up to three times)"
+msgstr ""
+"-L, --label=ETIKETT           bruk valgt ETIKETT i stedet for filnavn\n"
+"                                (dette kan gjentas opptil tre ganger)"
+
+#: src/diff3.c:448
+msgid "    --help                  display this help and exit"
+msgstr "    --help                  vis denne hjelpeteksten og avslutt"
+
+#: src/diff3.c:449
+msgid "-v, --version               output version information and exit"
+msgstr "-v, --version               vis versjonsinformasjon og avslutt"
+
+#: src/diff3.c:458
+#, c-format
+msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
+msgstr "Usage: %s [VALG] … FIL GAMMELFIL NYFIL\n"
+
+#: src/diff3.c:460
+msgid "Compare three files line by line."
+msgstr "Sammenlikn tre filer, linje for linje."
+
+#: src/diff3.c:470
+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"
+"Standard utskriftsformat er en nogen lunde menneskevennlig visning\n"
+"av endringene.\n"
+"\n"
+"Valgene «-e», «-E», «-x» og «-X» (samt tilsv. lange valgnavn) fører til\n"
+"utskrift av ed-skript i stedet for standardformatet.\n"
+"\n"
+"Valget «-m» («--merge») lar diff3 utføre sammenslåing internt\n"
+"og skrive ut sammenslått fil. Dette er sikrere for behandling av\n"
+"uvanlig inndata enn å bruke ed.\n"
+
+#: src/diff3.c:482
+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:675
+msgid "internal error: screwup in format of diff blocks"
+msgstr "intern feil: rot i diff-blokkformat"
+
+#: src/diff3.c:968
+#, c-format
+msgid "%s: diff failed: "
+msgstr "%s: diff mislyktes: "
+
+#: src/diff3.c:990
+msgid "internal error: invalid diff type in process_diff"
+msgstr "intern feil: ugyldig diff-type i process_diff"
+
+#: src/diff3.c:1015
+msgid "invalid diff format; invalid change separator"
+msgstr "ugyldig diff-format. Ugyldig endringsskilletegn"
+
+#: src/diff3.c:1252
+msgid "invalid diff format; incomplete last line"
+msgstr "ugyldig diff-format. Siste linje er ufullstendig"
+
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
+msgid "subsidiary program '%s' could not be invoked"
+msgstr "klarte ikke å starte hjelpeprogrammet «%s»"
+
+#: src/diff3.c:1301
+msgid "invalid diff format; incorrect leading line chars"
+msgstr "ugyldig diff-format. Feil ledende linjetegn"
+
+#: src/diff3.c:1374
+msgid "internal error: invalid diff type passed to output"
+msgstr "intern feil: ugyldig diff-type sendt til utdata"
+
+#: src/diff3.c:1648 src/diff3.c:1705
+msgid "input file shrank"
+msgstr "inndata-fila er krympet"
+
+#: src/dir.c:156
+#, c-format
+msgid "cannot compare file names '%s' and '%s'"
+msgstr "klarte ikke å sammenlikne filnavn «%s» med «%s»"
+
+#: src/dir.c:225
+#, c-format
+msgid "%s: recursive directory loop"
+msgstr "%s: rekursiv mappesløyfe"
+
+#. This is a proper name. See the gettext manual, section Names.
+#: src/sdiff.c:42
+msgid "Thomas Lord"
+msgstr "Thomas Lord"
+
+#: 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: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: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: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: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:179
+msgid "-W, --ignore-all-space       ignore all white space"
+msgstr "-W, --ignore-all-space       ignorer alle blanktegn"
+
+#: 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: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: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:183
+msgid "-a, --text                   treat all files as text"
+msgstr "-a, --text                   behandle filer som tekst"
+
+#: 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:186
+msgid ""
+"-l, --left-column            output only the left column of common lines"
+msgstr ""
+"-l, --left-column            bare skriv ut venstre kolonne med vanlige linjer"
+
+#: src/sdiff.c:187
+msgid "-s, --suppress-common-lines  do not output common lines"
+msgstr "-s, --suppress-common-lines  ikke skriv ut vanlige linjer"
+
+#: 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: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: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: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:194
+msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
+msgstr ""
+"    --diff-program=PROGRAM   bruk valgt PROGRAM til å sammenlikne filer"
+
+#: src/sdiff.c:196
+msgid "    --help                   display this help and exit"
+msgstr "    --help                   vis denne hjelpeteksten og avslutt"
+
+#: src/sdiff.c:197
+msgid "-v, --version                output version information and exit"
+msgstr "-v, --version                vis versjonsinformasjon og avslutt"
+
+#: src/sdiff.c:206
+#, c-format
+msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
+msgstr "Bruk: %s [VALG] … FIL1 FIL2\n"
+
+#: 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:329
+msgid "cannot interactively merge standard input"
+msgstr "du kan ikke slå sammen standard inndata interaktivt"
+
+#: src/sdiff.c:595
+msgid "both files to be compared are directories"
+msgstr "begge filer som skal sammenliknes er mapper"
+
+#: src/sdiff.c:818
+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:\tRediger og bruk  begge versjoner, og dekorer hver av dem med "
+"overskrift.\n"
+"eb:\tRediger og bruk deretter begge versjoner.\n"
+"el or e1:\tRediger og bruk deretter venstre versjon.\n"
+"er or e2:\tRediger og bruk deretter høyre versjon.\n"
+"e:\tForkast begge versjon, og rediger en ny versjon.\n"
+"l or 1:\tBruk venstre versjon.\n"
+"r or 2:\tBruk høyre versjon.\n"
+"s:\tInkluder kommandolinjer uten å nevne noe om det.\n"
+"v:\tInkluder kommandolinjer i detaljert modus.\n"
+"q:\tAvslutt.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: «--%s» er et ukjent valg\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index cecab7f..547e642 100644 (file)
Binary files a/po/nl.gmo and b/po/nl.gmo differ
index 583ffff..644638e 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils-3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-10-31 21:04+0100\n"
 "Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -21,6 +21,21 @@ msgstr ""
 "X-Generator: Lokalize 1.0\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "ongeldig argument '%3$s' van %1$s%2$s"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "ongeldig argument '%3$s' van %1$s%2$s"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "programmafout"
@@ -29,113 +44,166 @@ msgstr "programmafout"
 msgid "stack overflow"
 msgstr "stack-overloop"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Onbekende systeemfout"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "leeg normaal bestand"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "normaal bestand"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "map"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "blok-apparaat"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "byte-apparaat"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "symbolische koppeling"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "berichtenwachtrij"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafoor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "gedeeld geheugenobject"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "zelfstandig geheugenobject"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "blok-apparaat"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "byte-apparaat"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "blok-apparaat"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "byte-apparaat"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "merkwaardig bestand"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "blok-apparaat"
+
+#: 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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "merkwaardig bestand"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: optie '%s' is niet eenduidig; mogelijkheden zijn:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: optie '-W %s' is niet eenduidig\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: optie '--%s' staat geen argument toe\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: optie '%c%s' staat geen argument toe\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: optie '--%s' vereist een argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: onbekende optie '--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: onbekende optie '%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ongeldige optie -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: optie vereist een argument -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: optie '-W %s' is niet eenduidig\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: optie '-W %s' staat geen argument toe\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: optie '-W %s' vereist een argument\n"
@@ -161,84 +229,85 @@ msgstr "%s: optie '-W %s' vereist een argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "‘"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "’"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Gelukt"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Geen overeenkomsten"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Ongeldige reguliere expressie"
 
 # Zie http://mailman.vrijschrift.org/pipermail/vertaling/2005-August/004670.html
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Ongeldig samengesteld teken"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Ongeldige tekenklassenaam"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Backslash aan het eind"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Ongeldige terugverwijzing"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Ongepaarde [ of [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Ongepaarde ( of \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Ongepaarde \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Ongeldige inhoud van \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Ongeldig bereikeinde"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Onvoldoende geheugen beschikbaar"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Ongeldige voorafgaande reguliere expressie"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Voortijdig einde van reguliere expressie"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Reguliere expressie is te groot"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Ongepaarde ) of \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Geen eerdere reguliere expressie"
 
@@ -460,17 +529,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Bestanden %s en %s zijn verschillend\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binaire bestanden %s en %s zijn verschillend\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Geen regeleindeteken (LF) aan einde van bestand"
 
@@ -484,7 +553,7 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Typ '%s --help' voor meer informatie."
@@ -499,14 +568,12 @@ msgstr "ongeldige waarde '%s' voor '--ignore-initial'"
 msgid "options -l and -s are incompatible"
 msgstr "opties '-l' en '-s' gaan niet samen"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "schrijven is mislukt"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standaarduitvoer"
 
@@ -571,7 +638,7 @@ msgstr ""
 "dat\n"
 "aan het begin van elk bestand moet worden overgeslagen (standaard nul)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -594,7 +661,7 @@ 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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"
@@ -605,27 +672,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "ongeldige waarde '%s' voor '--bytes'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "ontbrekend argument na '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "overtollig argument '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s verschillen: byte %s, regel %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: einde-van-bestand op %s\n"
@@ -655,201 +722,202 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ongeldige contextlengte '%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "het in pagina's indelen is op deze computer niet mogelijk"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "te veel bestandslabel-opties"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ongeldige breedte '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "conflicterende breedte-opties"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ongeldige horizonlengte '%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ongeldige tabgrootte '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "conflicterende tabgrootte-opties"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "zowel '--from-file' als '--to-file' zijn opgegeven"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal               een gewone diff produceren (standaard)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                alleen aangeven of bestanden verschillen"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                   een ed-script produceren"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                  een diff in RCS-opmaak produceren"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side         het resultaat weergeven in twee kolommen"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column          bij gelijke regels alleen de linkerkolom tonen"
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines    de gelijke regels onderdrukken"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label LABEL          dit LABEL gebruiken in plaats van bestandsnaam\n"
 "                             (mag herhaald worden)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs          tabs uitschrijven naar spaties in uitvoer"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 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:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r, --recursive            recursief elke gevonden submap vergelijken"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference       symbolische koppelingen niet volgen"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file             afwezige bestanden als leeg behandelen"
 
-#: src/diff.c:880
+#: src/diff.c:909
 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:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=PATROON      bestanden uitsluiten als ze overeenkomen met "
 "PATROON"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -857,7 +925,7 @@ msgstr ""
 "    --from-file=BESTAND1    BESTAND1 met alle argumenten vergelijken;\n"
 "                              BESTAND1 mag een map zijn"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -865,88 +933,88 @@ msgstr ""
 "    --to-file=BESTAND2    alle argumenten met BESTAND2 vergelijken;\n"
 "                            BESTAND2 mag een map zijn"
 
-#: src/diff.c:891
+#: src/diff.c:920
 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:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space        alle witruimte negeren"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                 alle bestanden als tekst behandelen"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary               gegevens in binaire modus lezen en schrijven"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -954,13 +1022,13 @@ msgstr ""
 "  Deze opmaakopties bieden een fijnafregeling van de uitvoer aan,\n"
 "    een generalisatie van de optie '-d/--ifdef'."
 
-#: src/diff.c:911
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -990,7 +1058,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?Z:V)  als A gelijk is aan B, dan Z anders V"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1003,7 +1071,7 @@ msgstr ""
 "    %[-][BREEDTE][.[PREC]]{doxX}n  specificatie in printf-stijl voor\n"
 "                                   invoerregelnummer"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1017,20 +1085,20 @@ msgstr ""
 "    %c'\\OOO'  het teken met octaalcode OOO\n"
 "    C         het teken C (andere tekens representeren zichzelf)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
@@ -1038,81 +1106,107 @@ msgstr ""
 "verspreide\n"
 "                             kleine wijzigingen"
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal               een gewone diff produceren (standaard)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help                 deze hulptekst tonen en stoppen"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version              programmaversie tonen en stoppen"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr ""
 "Gebruik:  %s [OPTIE...] BESTANDEN\n"
 "\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Bestanden regel-voor-regel vergelijken."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "conflicterende waarde '%2$s' van optie %1$s"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "conflicterende uitvoerstijl-opties"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ongeldige breedte '%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Alleen in %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "kan '-' niet met een map vergelijken"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "optie '-D' is niet mogelijk bij mappen"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Gemeenschappelijke submappen: %s en %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Symbolische koppelingen %s en %s zijn verschillend\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Bestanden %s en %s zijn identiek\n"
@@ -1131,7 +1225,7 @@ msgstr "niet-samengaande opties"
 msgid "'-' specified for more than one input file"
 msgstr "'-' opgegeven voor meer dan één invoerbestand"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "lezen is mislukt"
@@ -1284,33 +1378,33 @@ msgstr "*interne programmmafout*: ongeldig soort diff in process_diff()"
 msgid "invalid diff format; invalid change separator"
 msgstr "ongeldige diff-opmaak: ongeldig scheidingsteken voor veranderingen"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "ongeldige diff-opmaak: incomplete laatste regel"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "hulpprogramma '%s' kan niet worden aangeroepen"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ongeldige diff-opmaak: onjuiste tekens aan begin van regel"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "*interne programmafout*: ongeldig soort diff naar uitvoer gestuurd"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "invoerbestand is gekrompen"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan bestandsnamen '%s' en '%s' niet vergelijken"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: oneindige lus in de mappen"
@@ -1471,6 +1565,16 @@ msgstr ""
 "v:        Overeenkomende regels invoegen en tonen.\n"
 "q:        Afsluiten.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: onbekende optie '--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i OVERSLAAN1:OVERSLAAN2  --ignore-initial=OVERSLAAN1:OVERSLAAN2"
 
index a9684f6..2b7bb3f 100644 (file)
Binary files a/po/pl.gmo and b/po/pl.gmo differ
index 2c77798..86029ce 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-10-31 17:30+0100\n"
 "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -19,6 +19,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "błędny argument %s%s: '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "błędny argument %s%s: '%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "błąd programu"
@@ -27,113 +42,166 @@ msgstr "błąd programu"
 msgid "stack overflow"
 msgstr "przepełnienie stosu"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Nieznany błąd systemu"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "zwykły pusty plik"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "zwykły plik"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "katalog"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "specjalny plik blokowy"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "specjalny plik znakowy"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "dowiązanie symboliczne"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "gniazdo"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "kolejka komunikatów"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "obiekt w pamięci dzielonej"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "obiekt w pamięci z określeniem typu"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "specjalny plik blokowy"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "specjalny plik znakowy"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "specjalny plik blokowy"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "specjalny plik znakowy"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "dziwny plik"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "specjalny plik blokowy"
+
+#: 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 "gniazdo"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "dziwny plik"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opcja '--%s' nie może mieć argumentu\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opcja '%c%s' nie może mieć argumentu\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opcja '--%s' wymaga argumentu\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: nierozpoznana opcja '--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: nierozpoznana opcja '%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: błędna opcja -- '%c'\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opcja wymaga argumentu -- '%c'\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opcja '-W %s' nie może mieć argumentu\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opcja -W '%s' wymaga argumentu\n"
@@ -159,83 +227,84 @@ msgstr "%s: opcja -W '%s' wymaga argumentu\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "„"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Powodzenie"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Nie pasuje"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Błędne wyrażenie regularne"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Znak błędny dla bieżącego uporządkowania"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Błędne nazwa klasy znaków"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Końcowy ukośnik odwrotny"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Błędny odnośnik wstecz"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Nie sparowany [ lub [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Nie sparowany ( lub \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Nie sparowany \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Błędna zawartość \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Błędny koniec zakresu"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Brak pamięci"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Błędne poprzedzające wyrażenie regularne"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Przedwczesny koniec wyrażenia regularnego"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Wyrażenia regularne jest za duże"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Nie sparowany ) lub \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Brak poprzedniego wyrażenia regularnego"
 
@@ -453,17 +522,17 @@ msgstr "strona domowa %s: http://www.gnu.org/software/%s/\n"
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr "Pomoc w używaniu oprogramowania GNU: http://www.gnu.org/gethelp/\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Pliki %s i %s różnią się\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Binarne pliki %s i %s różnią się\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Brak znaku nowej linii na końcu pliku"
 
@@ -477,7 +546,7 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Napisz '%s --help' żeby dowiedzieć się więcej."
@@ -492,14 +561,12 @@ msgstr "błędna wartość --ignore-initial '%s'"
 msgid "options -l and -s are incompatible"
 msgstr "sprzeczne opcje -l i -s"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "zapis nieudany"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standardowe wyjście"
 
@@ -559,7 +626,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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"
@@ -578,7 +645,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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"
@@ -589,27 +656,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "błędna wartość --bytes '%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "brakujący argument po '%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "nadmiarowy argument '%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF przy %s\n"
@@ -639,199 +706,200 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "błędna długość kontekstu '%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "stronicowanie nie jest możliwe na tej maszynie"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "za dużo opcji etykietowania plików"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "błędna szerokość '%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "sprzeczne opcje szerokości"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "błędna długość horyzontu '%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "błędny rozmiar tabulacji '%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "sprzeczne opcje rozmiarów TAB-a"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "równocześnie podane --from-file i --to-file"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "--normal                      wynik w postaci zwykłego diff-a (domyślnie)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
 "-q  --brief                   wypisanie wyniku tylko gdy pliki się różnią"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed                      wynik w postaci poleceń ed-a"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs                     wynik w postaci diff-a z RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            wyniki w dwóch kolumnach"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   bez wypisania wspólnych linii"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETYKIETA          użycie ETYKIETY zamiast nazwy pliku\n"
 "                                (może być powtarzane)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 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:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-I  --paginate                przepuszczenie wyniku przez 'pr' żeby go "
 "stronnicować"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive                 porównanie podkatalogów rekurencyjnie"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 "    --no-dereference            bez podążania za dowiązaniami symbolicznymi"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
 "-N  --new-file                  traktowanie brakujących plików jak pustych"
 
-#: src/diff.c:880
+#: src/diff.c:909
 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:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=WZÓR              wykluczenie plików pasujących do WZORU"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -839,7 +907,7 @@ msgstr ""
 "    --from-file=PLIK1           porównanie PLIKU1 z wszystkimi\n"
 "                                  argumentami; PLIK1 może być katalogiem"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -847,85 +915,85 @@ msgstr ""
 "    --to-file=PLIK2             porównanie wszystkich argumentów\n"
 "                                  z PLIKIEM2; PLIK2 może być katalogiem"
 
-#: src/diff.c:891
+#: src/diff.c:920
 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:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space          zignorowanie znaków odstępu"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text                      traktowanie plików jako tekstowych"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary                        czytanie i zapisywanie danych binarnie"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -933,11 +1001,11 @@ msgstr ""
 "  Te opcje formatowania dają dokładną kontrolę nad wynikami diff-a,\n"
 "    są uogólnieniem -D/--ifdef."
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr "TYPL to 'old', 'new' albo 'unchanged'.  TYPG to TYPL albo 'changed'."
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -965,7 +1033,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:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -977,7 +1045,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:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -991,97 +1059,124 @@ msgstr ""
 "    %c'\\OOO'  znak o kodzie ósemkowym OOO    Z    znak Z (inne znaki "
 "reprezentują same siebie)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
 "-d  --minimal            usiłowanie znalezienia mniejszego zbioru zmian"
 
-#: src/diff.c:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"--normal                      wynik w postaci zwykłego diff-a (domyślnie)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               wypisanie tej pomocy i zakończenie"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version            wypisanie informacji o wersji i zakończenie"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Składnia: %s [OPCJA]... PLIKI\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Porównanie PLIKÓW kolejnymi liniami."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "sprzeczna wartość opcji %s: '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "sprzeczne opcje stylu wyniku"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "błędna szerokość '%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Tylko w %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "nie można porównać '-' z katalogiem"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "opcja -D nie działa dla katalogów"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Wspólne podkatalogi: %s i %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Dowiązania symboliczne %s i %s różnią się\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Pliki %s i %s są identyczne\n"
@@ -1100,7 +1195,7 @@ msgstr "niezgodne opcje"
 msgid "'-' specified for more than one input file"
 msgstr "'-' podany dla więcej niż jednego pliku wejściowego"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "nieudany odczyt"
@@ -1239,33 +1334,33 @@ msgstr "błąd wewnętrzny: błędny typ diff w process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "błędny format diff; błędny separator zmian"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "błędny format diff; niekompletna ostatnia linia"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "nie mógł być wywołany program pomocniczy '%s'"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "błędny format diff; nieprawidłowe znaki na początku linii"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 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:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "plik wejściowy się zmniejszył"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, 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:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekurencyjne zapętlenie katalogów"
@@ -1414,3 +1509,13 @@ msgstr ""
 "s:\tDołączenie wspólnych linii bez informowania o tym.\n"
 "v:\tDołączenie wspólnych linii z podaniem informacji.\n"
 "q:\tZakończenie.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: nierozpoznana opcja '--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 7a46717..08e03e6 100644 (file)
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
index e5d1b82..8d5dd5b 100644 (file)
@@ -1,20 +1,38 @@
-# diffutils: Translation to Brazilian Portuguese (pt_BR).
-# Copyright © 2002 Free Software Foundation, Inc.
+# Brazilian Portuguese translation for diffutis.
+# Copyright © 2016 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
 # Halley Pacheco de Oliveira <halleypo@ig.com.br>, 2002.
-#
+# Rafael Fontenelle <rffontenelle@gmail.com>, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.3\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2002-06-24 09:07GMT -3\n"
-"Last-Translator: Halley Pacheco de Oliveira <halleypo@ig.com.br>\n"
-"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2016-05-06 21:25-0200\n"
+"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
+"net>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.5\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Virtaal 0.7.1\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento inválido para %s%s: \"%s\""
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "argumento inválido para %s%s: \"%s\""
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -24,117 +42,169 @@ msgstr "erro do programa"
 msgid "stack overflow"
 msgstr "estouro da pilha"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Erro de sistema desconhecido"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "arquivo regular vazio"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "arquivo regular"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
-msgstr "diretório"
+msgstr "diretório"
+
+#: lib/file-type.c:46
+msgid "symbolic link"
+msgstr "link simbólico"
+
+#: lib/file-type.c:52
+msgid "message queue"
+msgstr "fila de mensagem"
+
+#: lib/file-type.c:55
+msgid "semaphore"
+msgstr "semáforo"
+
+#: lib/file-type.c:58
+msgid "shared memory object"
+msgstr "objeto em memória compartilhada"
+
+#: lib/file-type.c:61
+msgid "typed memory object"
+msgstr "objeto de memória tipificada"
 
-#: lib/file-type.c:44
+#: lib/file-type.c:66
 msgid "block special file"
 msgstr "arquivo do tipo especial de bloco"
 
-#: lib/file-type.c:47
+#: lib/file-type.c:69
 msgid "character special file"
 msgstr "arquivo do tipo especial de caracter"
 
-#: lib/file-type.c:50
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
 msgid "fifo"
 msgstr "fila"
 
-#: lib/file-type.c:53
-msgid "symbolic link"
-msgstr "vínculo simbólico"
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soquete"
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "arquivo do tipo especial de bloco"
 
-#: lib/file-type.c:59
-msgid "message queue"
-msgstr "fila de mensagem"
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "arquivo do tipo especial de caracter"
 
-#: lib/file-type.c:62
-msgid "semaphore"
-msgstr "semáforo"
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
 
-#: lib/file-type.c:65
-msgid "shared memory object"
-msgstr "objeto em memória compartilhada"
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "arquivo estranho"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:93
 #, fuzzy
-msgid "typed memory object"
-msgstr "objeto em memória compartilhada"
+msgid "network special file"
+msgstr "arquivo do tipo especial de bloco"
+
+#: 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 "socket"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "arquivo estranho"
 
-#: lib/getopt.c:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: a opção `%s' é ambígua\n"
+msgstr "%s: a opção \"%s\" está ambígua; possibilidades:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a opção \"-W %s\" é ambígua\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
-msgstr "%s: a opção `--%s' não permite um argumento\n"
+msgstr "%s: a opção \"--%s\" não admite argumentos\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
-msgstr "%s: a opção `%c%s' não permite um argumento\n"
+msgstr "%s: a opção \"%c%s\" não admite argumentos\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
-msgstr "%s: a opção `%s' requer um argumento\n"
+msgstr "%s: a opção \"--%s\" exige um argumento\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
-msgstr "%s: a opção `--%s' não é reconhecida\n"
+msgstr "%s: opção não reconhecida \"--%s\"\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
-msgstr "%s: a opção `%c%s' não é reconhecida\n"
+msgstr "%s: opção não reconhecida \"%c%s\"\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: a opção -- %c é inválida\n"
+msgstr "%s: opção inválida -- \"%c\"\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: a opção -- %c requer um argumento\n"
+msgstr "%s: a opção requer um argumento -- \"%c\"\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: a opção `-W %s' é ambígua\n"
+msgstr "%s: a opção \"-W %s\" é ambígua\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s: a opção `-W %s' não permite um argumento\n"
+msgstr "%s: a opção \"-W %s\" não admite argumentos\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: a opção `%s' requer um argumento\n"
+msgstr "%s: a opção \"-W %s\" requer um argumentos\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -157,143 +227,143 @@ msgstr "%s: a op
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Sucesso"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Sem correspondente"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
-msgstr "A expressão regular não é válida"
+msgstr "Expressão regular inválida"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
-msgstr "O caracter de classificação não é válido"
+msgstr "caractere de classificação inválido"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
-msgstr "O nome da classe de caracteres não é válido"
+msgstr "Nome da classe de caracteres inválido"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
-msgstr "Contrabarra final"
+msgstr "Barra invertida ao final"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
-msgstr "A referência retroativa não é válida"
+msgstr "Referência retroativa inválida"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ ou [^ sem correspondente"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
-msgstr "( or \\( sem correspondente"
+msgstr "( ou \\( sem correspondente"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ sem correspondente"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
-msgstr "O counteúdo de \\{\\} não é válido"
+msgstr "Conteúdo de \\{\\} inválido"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
-msgstr "O fim do intervalo não é válido"
+msgstr "Fim do intervalo inválido"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
-msgstr "Memória esgotada"
+msgstr "Memória esgotada"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
-msgstr "A expressão regular precedente não é válida"
+msgstr "Expressão regular precedente inválida"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
-msgstr "Fim prematuro da expressão regular"
+msgstr "Fim prematuro da expressão regular"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
-msgstr "A expressão regular é muito grande"
+msgstr "Expressão regular muito grande"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
-msgstr ") or \\) sem correspondente"
+msgstr ") ou \\) sem correspondente"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
-msgstr "Sem expressão regular prévia"
+msgstr "Sem expressão regular prévia"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
-msgstr "memória esgotada"
+msgstr "memória esgotada"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "entrada padrão (stdin)"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "saída padrão (stdout)"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "erro padrão (stderr)"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Erro de sistema desconhecido"
+msgstr "fluxo desconhecido"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "falha ao reabrir %s com modo %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "valor inválido --bytes `%s'"
+msgstr "argumento inválido para %s%s: \"%s\""
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "sufixo inválido no argumento para %s%s: \"%s\""
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "argumento de %s%s \"%s\" é grande demais"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Empacotado por %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Empacotado por %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:84
 msgid "(C)"
-msgstr "©"
+msgstr "©"
 
 #: lib/version-etc.c:86
 msgid ""
@@ -304,24 +374,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl."
+"html>\n"
+"Este é um software livre: você é livre para alterá-lo e redistribuí-lo.\n"
+"NÃO HÁ GARANTIA, na máxima extensão permitida pela lei.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:102
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s.\n"
-msgstr "Escrito por Thomas Lord."
+msgstr "Escrito por %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:106
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s and %s.\n"
-msgstr "Escrito por Randy Smith."
+msgstr "Escrito por %s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:110
-#, fuzzy, c-format
+#, c-format
 msgid "Written by %s, %s, and %s.\n"
-msgstr "Escrito por Randy Smith."
+msgstr "Escrito por %s, %s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -332,6 +408,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -342,6 +420,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -352,6 +432,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s, %s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -362,6 +444,8 @@ msgid ""
 "Written by %s, %s, %s,\n"
 "%s, %s, %s, and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s, %s, %s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -373,6 +457,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s, %s, %s, %s\n"
+"e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -384,6 +471,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, and %s.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s, %s, %s, %s\n"
+"%s e %s.\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #. You can use line breaks, estimating that each author name occupies
@@ -395,6 +485,9 @@ msgid ""
 "%s, %s, %s, %s,\n"
 "%s, %s, and others.\n"
 msgstr ""
+"Escrito por %s, %s, %s\n"
+"%s, %s, %s, %s,\n"
+"%s, %s e outros.\n"
 
 #. TRANSLATORS: The placeholder indicates the bug-reporting address
 #. for this package.  Please add _another line_ saying
@@ -406,145 +499,140 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"Relate os erros para: %s\n"
 
 #: lib/version-etc.c:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Relate os erros de %s para: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "Página do %s: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "Página do %s: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "Ajuda geral sobre uso de software GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "Os arquivos %s e %s são diferentes\n"
+msgstr "Os arquivos %s e %s são diferentes\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "Os arquivos binários %s e %s são diferentes\n"
+msgstr "Os arquivos binários %s e %s são diferentes\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
-msgstr "Falta o caracter nova linha no final do arquivo"
+msgstr "Nenhum caractere de nova linha no final do arquivo"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:43
 msgid "Torbjorn Granlund"
-msgstr ""
+msgstr "Torbjorn Granlund"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Utilize `%s --help' para obter mais informações."
+msgstr "Tente \"%s --help\" para mais informações."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "valor inválido --ignore-initial `%s'"
+msgstr "valor inválido --ignore-initial \"%s\""
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
-msgstr "as opções -l e -s não são compatíveis"
+msgstr "as opções -l e -s são incompatíveis"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "erro de escrita"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
-msgstr "saída padrão"
+msgstr "saída padrão"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes           Imprimir os bytes diferentes."
+msgstr "-b, --print-bytes          imprime os bytes diferentes"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
 msgstr ""
-"-i SALTO  --ignore-initial=SALTO\n"
-"                              Saltar os primeiros SALTO bytes da entrada."
+"-i, --ignore-initial=SALTO        ignora os primeiros SALTO bytes da entrada"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"                            Saltar os primeiros SALTO1 bytes do ARQUIVO1\n"
-"                              e os primeiros SALTO2 bytes do ARQUIVO2."
+"-i, --ignore-initial=SALTO1:SALTO2\n"
+"                                  ignora os primeiros SALTO1 bytes do "
+"ARQUIVO1\n"
+"                                    e os primeiros SALTO2 bytes do ARQUIVO2"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
 msgstr ""
-"-l  --verbose               Exibir os números dos bytes e os valores de "
-"todos\n"
-"                              os bytes diferentes."
+"-l, --verbose              emite os números de bytes e os valores de\n"
+"                             todos os bytes diferentes"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMITE  --bytes=LIMITE   Comparar no máximo LIMITE bytes."
+msgstr "-n, --bytes=LIMITE         compara no máximo LIMITE bytes"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent      suprime todas saídas normais"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 mostra esta ajuda e sai"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version               Exibir as informações da versão."
+msgstr "-v, --version              mostra informação sobre a versão e sai"
 
 #: src/cmp.c:178
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "Utilização: %s [OPÇÃO]... ARQUIVO1 [ARQUIVO2 [SALTO1 [SALTO2]]]\n"
+msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 [ARQUIVO2 [SALTO1 [SALTO2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Comparar dois arquivos byte por byte."
+msgstr "Compara dois arquivos byte por byte."
 
 #: src/cmp.c:182
-#, 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 ""
-"SALTO1 e SALTO2 correspondem ao número de bytes saltados em cada arquivo."
+"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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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:191
 msgid ""
@@ -552,47 +640,48 @@ msgid ""
 "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 ""
-"Os valores do SALTO podem ser seguidos por um\n"
-"dos sufixos multiplicadores mostrados abaixo:\n"
+"Os valores do SALTO podem ser seguidos por sufixos multiplicativos a "
+"seguir:\n"
 "kB 1000, K 1024, MB 1,000,000, M 1,048,576,\n"
 "GB 1,000,000,000, G 1,073,741,824,\n"
 "e assim por diante para T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Se ARQUIVO for igual a `-' ou for omitido, ler da entrada padrão."
+msgstr "Se ARQUIVO for igual a \"-\" ou for omitido, ler da entrada padrão."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
-msgstr "valor inválido --bytes `%s'"
+msgstr "valor inválido --bytes \"%s\""
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
-msgstr "faltando operando após `%s'"
+msgstr "faltando operando após \"%s\""
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
-msgstr "operando extra `%s'"
+msgstr "operando extra \"%s\""
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s e %s são diferentes: byte %s, linha %s\n"
+msgstr "%s e %s são diferentes: byte %s, linha %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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"
+msgstr "%s e %s são diferentes: byte %s, linha %s é %3o %s %3o %s\n"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: Fim de arquivo (EOF) em %s\n"
@@ -600,372 +689,340 @@ msgstr "cmp: Fim de arquivo (EOF) em %s\n"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Paul Eggert"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Mike Haertel"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "David Hayes"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Richard Stallman"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Len Tower"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
-msgstr "o comprimento do contexto não é válido `%s'"
+msgstr "o comprimento do contexto não é válido \"%s\""
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
-msgstr "este computador não suporta paginação"
+msgstr "sem suporte a paginação neste computador"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "opções de rótulo de arquivo em número excessivo"
+msgstr "número excessivo de opções de rótulo de arquivo"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
-msgstr "largura inválida `%s'"
+msgstr "largura inválida \"%s\""
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
-msgstr "opções de largura conflitantes"
+msgstr "opções de largura conflitantes"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
-msgstr "comprimento do horizonte inválido `%s'"
+msgstr "comprimento do horizonte inválido \"%s\""
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
-msgstr "tamanho de tabulação inválido `%s'"
+msgstr "tamanho de tabulação inválido \"%s\""
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
-msgstr "opções de tamanho de tabulação conflitantes"
+msgstr "opções de tamanho de tabulação conflitantes"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "ambos --from-file e --to-file especificados"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal                    Criar o diff no formato normal."
+msgstr "    --normal                  cria um diff no formato normal (padrão)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr ""
-"-q  --brief                 Indicar apenas se os arquivos são diferentes."
+"-q, --brief                   indica apenas se os arquivos forem diferentes"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr ""
-"-s  --report-identical-files  Indicar quando dois arquivos forem o idênticos."
+"-s, --report-identical-files  indica quando dois arquivos forem o idênticos"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c, -C NÚM, --context[=NÚM]   cria em NÚM linhas (padrão 3) de contexto "
+"copiado"
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w NUM  --width=NUM         Limitar a saída a NUM colunas por linha (padrão "
-"130)."
+"-u, -U NÚM, --unified[=NÚM]   cria em NÚM linhas (padrão 3) de contexto "
+"unificado"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed                    Criar um script para o editor ed"
+msgstr "-e, --ed                      cria um script para o editor ed"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs                   Criar o diff no formato RCS."
+msgstr "-n, --rcs                     cria um diff no formato RCS"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            cria em duas colunas"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUM  --width=NUM         Limitar a saída a NUM colunas por linha (padrão "
-"130)."
+"-W, --width=NÚM               limita a saída a NÚM colunas por linha (padrão "
+"130)"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
-"-l  --left-column           Exibir apenas a coluna da esquerda nas linhas\n"
-"                              idênticas."
+"    --left-column             emite apenas a coluna da esquerda das linhas\n"
+"                                idênticas"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Não exibir as linhas em idênticas."
+msgstr "    --suppress-common-lines   não exibe as linhas idênticas"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label RÓTULO            usa RÓTULO ao invés do nome do arquivo\n"
+"                                (pode ser repetido)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
-"-t  --expand-tabs           Expandir as tabulações para espaços na saída."
+"-t, --expand-tabs             expande as tabulações para espaços na saída"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab           Alinhar as diferenças introduzindo um\n"
-"                            caracter de tabulação no início."
+"-T, --initial-tab             alinha tabulações introduzindo uma\n"
+"                                tabulação no início"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM               Parada de tabulação a cada NUM colunas\n"
-"                            (padrão=8)."
+"    --tabsize=NÚM             paradas de tabulação a cada NÚM colunas\n"
+"                                (padrão=8)"
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
-"-l  --paginate              Passar a saída através da `pr' para paginar."
+"-l, --paginate                passa a saída por meio de \"pr\" para paginá-la"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
-"-r  --recursive             Comparar recursivamente os subdiretórios\n"
-"                            encontrados."
+"-r, --recursive                 compara recursivamente os subdiretórios\n"
+"                                  encontrados"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            não interpreta links simbólicos"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr ""
-"-N  --new-file              Considerar os arquivos ausentes como vazios."
+"-N, --new-file                  considera os arquivos ausentes como vazios"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file   Considerar os primeiros arquivos ausentes\n"
-"                            como vazios."
+"    --unidirectional-new-file   considera os primeiros arquivos ausentes\n"
+"                                  como vazios"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case     Não fazer distinção entre letras maiúsculas e\n"
-"                            minúsculas nos nomes dos arquivos."
+"    --ignore-file-name-case     não faz distinção entre letras maiúsculas e\n"
+"                                  minúsculas nos nomes dos arquivos"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Fazer distinção entre letras maiúsculas e\n"
-"                            minúsculas nos nomes dos arquivos."
+"    --no-ignore-file-name-case  faz distinção entre letras maiúsculas e\n"
+"                                  minúsculas nos nomes dos arquivos"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
-"-x PADRÃO  --exclude=PADRÃO Não comparar os arquivos cujos nomes\n"
-"                            correspondem ao PADRÃO."
+"-x, --exclude=PADRÃO            exclui arquivos correspondendo a PADRÃO"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X ARQUIVO  --exclude-from=ARQUIVO\n"
-"                            Excluir os arquivos com nomes que correspondem\n"
-"                            a qualquer padrão contido em ARQUIVO."
+"-X, --exclude-from=ARQUIVO      exclui arquivos com correspondam a qualquer\n"
+"                                  padrão contido em ARQUIVO"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S ARQUIVO  --starting-file=ARQUIVO\n"
-"                            Iniciar por ARQUIVO ao comparar dois diretórios."
+"-S, --starting-file=ARQUIVO     inicia por ARQUIVO ao comparar diretórios"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=ARQUIVO1        Comparar ARQUIVO1 com todos os operandos.\n"
-"                            ARQUIVO1 pode ser um diretório."
+"    --from-file=ARQUIVO1        compara ARQUIVO1 com todos os operandos;\n"
+"                                  ARQUIVO1 pode ser um diretório"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=ARQUIVO2          Comparar todos os operandos com ARQUIVO2.\n"
-"                            ARQUIVO2 pode ser um diretório."
+"    --to-file=ARQUIVO2          compara todos os operandos com ARQUIVO2;\n"
+"                                  ARQUIVO2 pode ser um diretório"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
-"-i  --ignore-case           Não fazer distinção entre letras maiúsculas e\n"
-"                            minúsculas no conteúdo do arquivo."
+"-i, --ignore-case               não faz distinção entre letras maiúsculas e\n"
+"                                  minúsculas no conteúdo do arquivo"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 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."
+"-E, --ignore-tab-expansion      ignora as diferenças causadas pela expansão\n"
+"                                  da tabulação"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space      Ignorar todos os espaços em branco."
+msgstr ""
+"-Z, --ignore-trailing-space     ignora espaços em branco no fim das linhas"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
-"-b  --ignore-space-change   Ignorar a diferença na quantidade de espaços\n"
-"                            em branco."
+"-b, --ignore-space-change       ignora as diferenças na quantidade de "
+"espaços\n"
+"                                  em branco"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space      Ignorar todos os espaços em branco."
+msgstr "-w, --ignore-all-space          ignora todos os espaços em branco"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines    Ignorar diferenças nas linhas somente com "
-"brancos."
+"-B, --ignore-blank-lines        ignora diferenças onde as linhas estão vazias"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I EXPREG  --ignore-matching-lines=EXPREG\n"
-"                            Ignorar as diferenças nas linhas que "
+"-I, --ignore-matching-lines=ER  ignora as diferenças nas linhas que "
 "correspondem\n"
-"                            à EXPressão REGular."
+"                                  à Expressão Regular"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr ""
-"-a  --text                  Considerar todos os arquivos como sendo de texto."
+msgstr "-a, --text                      trata todos os arquivos como texto"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr         Remover o caracter final de retorno de carro\n"
-"                            (CR) da entrada."
+"    --strip-trailing-cr         remove o caractere de retorno de carro\n"
+"                                  (CR) ao final da linha na entrada"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Ler e escrever os dados em modo binário."
+msgstr "    --binary                    lê e escreve os dados em modo binário"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
-"-D NOME  --ifdef=NOME       Exibir o arquivo mesclado incluindo\n"
-"                            `#ifndef NOME original #else modificado'\n"
-"                            nas diferenças."
+"-D, --ifdef=NOME                exibe o arquivo mesclado incluindo\n"
+"                                  \"#ifndef NOME\" nas diferenças"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr "--GTYPE-group-format=GFMT   Formata grupos de entrada GTYPE com GFMT."
+msgstr ""
+"    --GTYPE-group-format=GFMT   formata grupos de entrada GTYPE com GFMT"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
-"--line-format=LFMT          Formata todas as linhas de entrada com LFMT."
+"    --line-format=LFMT          formata todas as linhas de entrada com LFMT"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
-"--LTYPE-line-format=LFMT    Formata todas as linhas de entrada LTYPE com "
-"LFMT."
+"    --LTYPE-line-format=LFMT    formata todas as linhas de entrada LTYPE com "
+"LFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 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:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE pode ser `old', `new', ou `unchanged'.\n"
-"  GTYPE pode ser um dos valores de LTYPE ou `changed'."
+"  LTYPE pode ser \"old\", \"new\" ou \"unchanged\". GTYPE é LTYPE ou "
+"\"changed\"."
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -980,37 +1037,36 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT pode conter:\n"
+"  GFMT pode conter (apenas):\n"
 "    %<  linhas do ARQUIVO1\n"
 "    %>  linhas do ARQUIVO2\n"
-"    %=  linhas idênticas em ARQUIVO1 e ARQUIVO2\n"
-"    %[-][LARGURA][.[PREC]]{doxX}LETRA  especificação para LETRA\n"
-"        utilizando a mesma notação do comando printf(). \n"
-"        Os códigos permitidos para LETRA são,\n"
-"        em maiúsculas para grupos novos,\n"
-"        em minúsculas para grupos antigos:\n"
-"        F  número da primeira linha\n"
-"        L  número da última linha\n"
-"        N  número de linhas = L-F+1\n"
+"    %=  linhas idênticas em ARQUIVO1 e ARQUIVO2\n"
+"    %[-][LARGURA][.[PREC]]{doxX}LETRA  especificação para LETRA\n"
+"        utilizando a mesma notação do comando printf(). \n"
+"        Os códigos permitidos para LETRA são,\n"
+"        em maiúsculas para grupos novos,\n"
+"        em minúsculas para grupos antigos:\n"
+"        F  número da primeira linha\n"
+"        L  número da última linha\n"
+"        N  número de linhas = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  se A igual B, então T; senão E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 pode conter:\n"
-"    %L  conteúdo da linha\n"
-"    %l  conteúdo da linha, excluindo o caracter final de nova linha\n"
-"    %[-][LARGURA][.[PREC]]{doxX}n  especificação do número da linha da \n"
-"        entrada utilizando a mesma notação do comando printf()."
+"  LFMT pode conter (apenas):\n"
+"    %L  conteúdo da linha\n"
+"    %l  conteúdo da linha, excluindo o caractere final de nova linha\n"
+"    %[-][LARGURA][.[PREC]]{doxX}n  especificação estilo printf() do número\n"
+"                                   da linha da utilizando"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1020,240 +1076,251 @@ msgid ""
 msgstr ""
 "  GFMT ou LFMT pode conter:\n"
 "    %%  %\n"
-"    %c'C'  o caracter C\n"
-"    %c'\\OOO'  o caracter com código octal OOO"
+"    %c'C'  o caractere C\n"
+"    %c'\\OOO'  o caractere com código octal OOO\n"
+"    C    o caractere C (outros caracteres representam a si próprios)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr ""
-"-d  --minimal               Se esforçar para encontrar o menor conjunto\n"
-"                            de diferenças."
+"-d, --minimal            se esforça para localizar o menor conjunto\n"
+"                            de diferenças"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
-"--horizon-lines=N           Manter N linhas de prefixo e sufixo idênticos."
+"    --horizon-lines=NÚM  mantém NÚM linhas de prefixo e sufixo idênticos"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files     Assumir arquivos grandes e muitas alterações\n"
-"                              pequenas espalhadas."
+"    --speed-large-files  assume arquivos grandes e muitas alterações\n"
+"                              pequenas espalhadas"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version               Exibir as informações da versão."
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  cria um diff no formato normal (padrão)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"    --palette=PALETTE    specify the colors to use when --color is active"
 msgstr ""
-"ARQUIVOS são `ARQUIVO1 ARQUIVO2' ou\n"
-"             `DIR1 DIR2' ou\n"
-"             `DIR ARQUIVO...' ou\n"
-"             `ARQUIVO... DIR'."
 
-#: src/diff.c:942
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               mostra esta ajuda e sai"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            mostra as informações da versão e sai"
+
+#: src/diff.c:974
 #, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"ARQUIVOS são \"ARQUIVO1 ARQUIVO2\" ou \"DIR1 DIR2\" ou \"DIR ARQUIVO...\" "
+"ou\n"
+"\"ARQUIVO... DIR\"."
+
+#: src/diff.c:975
 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 ARQUIVOS."
+"Se --from-file ou --to-file for especificado, não há restrição em ARQUIVO(s)."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Se ARQUIVO for igual a `-', ler da entrada padrão."
+msgstr "Se um ARQUIVO for igual a \"-\", lê da entrada padrão."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "Utilização: %s [OPÇÃO]... ARQUIVOS\n"
+msgstr "Uso: %s [OPÇÃO]... ARQUIVOS\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Comparar os arquivos linha por linha"
+msgstr "Compara ARQUIVOS linha por linha."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "conflitando %s valor da opção `%s'"
+msgstr "opção %s com valor conflitante \"%s\""
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
-msgstr "opções de estilo de saída conflitantes"
+msgstr "opções conflitantes de estilo de saída"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "largura inválida \"%s\""
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Somente em %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "impossível comparar `-' com um diretório"
+msgstr "não é possível comparar \"-\" com um diretório"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
-msgstr "a opção -D não é suportada com diretórios"
+msgstr "Sem suporte à opção -D com diretórios"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
-msgstr "Subdiretórios idênticos: %s e %s\n"
+msgstr "Subdiretórios idênticos: %s e %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
+msgstr "O arquivo %s é %s, enquanto o arquivo %s é %s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Os arquivos %s e %s são diferentes\n"
+msgstr "Os links simbólicos %s e %s são diferentes\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Os aquivos %s e %s são idênticos\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:41
-#, fuzzy
 msgid "Randy Smith"
-msgstr "Escrito por Randy Smith."
+msgstr "Randy Smith"
 
 #: src/diff3.c:313
 #, c-format
 msgid "incompatible options"
-msgstr "opções incompatíveis"
+msgstr "opções incompatíveis"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "`-' especificado para mais de um arquivo de entrada"
+msgstr "\"-\" especificado para mais de um arquivo de entrada"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "falha de leitura"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
 msgstr ""
-"-A  --show-all              Exibir todas as diferenças,\n"
-"                              com os conflitos entre parênteses."
+"-A, --show-all              exibe todas as diferenças, com os conflitos\n"
+"                              entre parênteses"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed                    Criar um arquivo de ed para incorporar em\n"
-"                              ARQUIVO1 as diferenças não mescladas\n"
-"                              entre ARQUIVO2 e ARQUIVO3."
+"-e, --ed                    cria um script de ed para incorporar as\n"
+"                              diferenças entre ARQUIVO1 e ARQUIVO2\n"
+"                              em ARQUIVO3"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
 msgstr ""
-"-E  --show-overlap          Exibir as diferenças sem mesclar,\n"
-"                              conflitos entre parênteses."
+"-E, --show-overlap          similar a -e, mas exibe conflitos entre "
+"parênteses"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
 msgstr ""
-"-3  --easy-only             Exibir sem mesclar as diferenças sem "
-"sobreposição."
+"-3, --easy-only             similar a -e, mas incorpora apenas as "
+"alterações\n"
+"                              que não se sobreponham"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
 msgstr ""
-"-x  --overlap-only          Exibir somente as diferenças que se sobrepõem."
+"-x, --overlap-only          similar a -e, mas incorpora apenas as "
+"alterações\n"
+"                              que se sobrepõem"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
 msgstr ""
+"-X                          similar a -x, mas exibe conflitos entre parentes"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
 msgstr ""
-"-i                          Incluir os comandos `w' e `q' no script do ed."
+"-i                          anexa os comandos \"w\" e \"q\" aos scripts de ed"
 
 #: src/diff3.c:438
 msgid ""
 "-m, --merge                 output actual merged file, according to\n"
 "                                -A if no other options are given"
 msgstr ""
+"-m, --merge                 emite arquivo mesclado atual, conforme\n"
+"                              -A se nenhuma outra opções for fornecida"
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr ""
-"-a  --text                  Considerar todos os arquivos como sendo de texto."
+msgstr "-a, --text                  trata todos os arquivos como texto"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr         Remover o caracter final de retorno de carro\n"
-"                            (CR) da entrada."
+"    --strip-trailing-cr     remove o caractere de retorno de carro\n"
+"                              (CR) ao final da linha na entrada"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
 msgstr ""
-"-T  --initial-tab           Alinhar as diferenças introduzindo um\n"
-"                            caracter de tabulação no início."
+"-T, --initial-tab           alinha tabulações introduzindo uma\n"
+"                              tabulação no início."
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAMA     Usar o PROGRAMA para comparar os arquivos."
+msgstr "    --diff-program=PROGRAMA  usa o PROGRAMA para comparar os arquivos"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 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:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  mostra esta ajuda e sai"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version               Exibir as informações da versão."
+msgstr "-v, --version               mostra informação da versão e sai"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "Utilização: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2 ARQUIVO3\n"
+msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2 ARQUIVO3\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
-msgstr "Comparar três arquivos linha por linha."
+msgstr "Compara três arquivos linha por linha."
 
 #: src/diff3.c:470
 msgid ""
@@ -1268,14 +1335,24 @@ msgid ""
 "and output the actual merged file.  For unusual input, this is more\n"
 "robust than using ed.\n"
 msgstr ""
+"\n"
+"O formato padrão de saída é uma forma legível por humanos de representação\n"
+"das alterações.\n"
+"\n"
+"As opções -e, -E, -x, -X (e opções extensas correspondentes) fazem com que\n"
+"um script de ed seja criado, ao invés do padrão.\n"
+"\n"
+"Finalmente, a opção -m (--merge) faz com que diff3 faça a mesclagem\n"
+"internalmente e emite o arquivo mesclado atual. Para entradas incomuns,\n"
+"isto é mais robusto do que usar o ed.\n"
 
 #: src/diff3.c:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
-msgstr ""
+msgstr "Status de saída é 0 se houver sucesso, 1 se conflitos e 2 se problema."
 
 #: src/diff3.c:675
 msgid "internal error: screwup in format of diff blocks"
-msgstr "erro interno: confusão no formato dos blocos diff"
+msgstr "erro interno: confusão no formato dos blocos diff"
 
 #: src/diff3.c:968
 #, c-format
@@ -1284,203 +1361,179 @@ msgstr "%s: diff falhou: "
 
 #: src/diff3.c:990
 msgid "internal error: invalid diff type in process_diff"
-msgstr "erro interno: tipo de diff inválido em process_diff"
+msgstr "erro interno: tipo de diff inválido em process_diff"
 
 #: src/diff3.c:1015
 msgid "invalid diff format; invalid change separator"
-msgstr "formato de diff inválido; separador de diferença inválido"
+msgstr "formato de diff inválido; separador de diferença inválido"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "formato de diff inválido; a última linha não está completa"
+msgstr "formato de diff inválido; última linha incompleta"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "o programa auxiliar `%s' não foi encontrado"
+msgstr "o programa subsidiário \"%s\" não pôde ser invocado"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "formato de diff inválido; caracteres incorretos na linha de início"
+msgstr "formato de diff inválido; caracteres incorretos na linha de início"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "erro interno: tipo de diff inválido passado para a saída"
+msgstr "erro interno: tipo de diff inválido passado para a saída"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "o arquivo de entrada diminuiu"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "impossível comparar os nomes dos arquivos `%s' e `%s'"
+msgstr "não foi possível comparar os nomes dos arquivos \"%s\" e \"%s\""
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: loop de diretório recursivo"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
-#, fuzzy
 msgid "Thomas Lord"
-msgstr "Escrito por Thomas Lord."
+msgstr "Thomas Lord"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
 msgstr ""
-"-o ARQUIVO  --output=ARQUIVO  Agir interativamente, direcionando a saída "
-"para ARQUIVO."
+"-o, --output=ARQUIVO         age interativamente, enviando a saída para "
+"ARQUIVO"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
 msgstr ""
-"-i  --ignore-case           Não fazer distinção entre letras maiúsculas\n"
-"                              e minúsculas."
+"-i, --ignore-case            não faz distinção entre letras maiúsculas\n"
+"                              e minúsculas"
 
 #: src/sdiff.c:176
-#, fuzzy
 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."
+"-E, --ignore-tab-expansion   ignorar as diferenças causadas pela expansão\n"
+"                               da tabulação"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space      Ignorar todos os espaços em branco."
+msgstr ""
+"-Z, --ignore-trailing-space  ignora espaços em branco no fim das linhas"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
 msgstr ""
-"-b  --ignore-space-change   Ignorar a diferença na quantidade de espaços\n"
-"                            em branco."
+"-b, --ignore-space-change    ignora as diferenças na quantidade de espaços\n"
+"                               em branco"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space      Ignorar todos os espaços em branco."
+msgstr "-W, --ignore-all-space       ignora todos os espaços em branco"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
 msgstr ""
-"-B  --ignore-blank-lines    Ignorar diferenças nas linhas somente com "
-"brancos."
+"-B, --ignore-blank-lines     ignora diferenças onde as linhas estão vazias"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I EXPREG  --ignore-matching-lines=EXPREG\n"
-"                            Ignorar as diferenças nas linhas que "
+"-I, --ignore-matching-lines=ER  ignora as diferenças em linhas que "
 "correspondem\n"
-"                            à EXPressão REGular."
+"                                  à Expressão Regular"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
 msgstr ""
-"--strip-trailing-cr         Remover o caracter final de retorno de carro\n"
-"                            (CR) da entrada."
+"    --strip-trailing-cr      remove o caractere de retorno de carro\n"
+"                               (CR) ao final da linha na entrada"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr ""
-"-a  --text                  Considerar todos os arquivos como sendo de texto."
+msgstr "-a, --text                   trata todos os arquivos como texto"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w NUM  --width=NUM         Limitar a saída a NUM colunas por linha (padrão "
-"130)."
+"-w, --width=NÚM              limita a saída a NÚM colunas por linha (padrão "
+"130)"
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
 msgstr ""
-"-l  --left-column           Exibir apenas a coluna da esquerda nas linhas\n"
-"                              idênticas."
+"-l, --left-column            emite apenas a coluna da esquerda das linhas\n"
+"                               idênticas"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Não exibir as linhas em idênticas."
+msgstr "-s, --suppress-common-lines  não emite as linhas idênticas"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
 msgstr ""
-"-t  --expand-tabs           Expandir as tabulações para espaços na saída."
+"-t, --expand-tabs            expande as tabulações para espaços na saída"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
 msgstr ""
-"--tabsize=NUM               Parada de tabulação a cada NUM colunas\n"
-"                            (padrão=8)."
+"    --tabsize=NÚM            paradas de tabulação a cada NÚM colunas\n"
+"                               (padrão=8)"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
 msgstr ""
-"-d  --minimal               Se esforçar para encontrar o menor conjunto\n"
-"                            de diferenças."
+"-d, --minimal                se esforça para localizar o menor conjunto\n"
+"                               de diferenças"
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files     Assumir arquivos grandes e muitas alterações\n"
-"                              pequenas espalhadas."
+"-H, --speed-large-files      assume arquivos grandes e muitas alterações\n"
+"                               pequenas espalhadas"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=PROGRAMA     Usar o PROGRAMA para comparar os arquivos."
+msgstr "    --diff-program=PROGRAMA  usa o PROGRAMA para comparar os arquivos"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   mostra esta ajuda e sai"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version               Exibir as informações da versão."
+msgstr "-v, --version                mostra informação da versão e sai"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Utilização: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2\n"
+msgstr "Uso: %s [OPÇÃO]... ARQUIVO1 ARQUIVO2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "Mesclagem lado a lado das diferenças dos arquivos."
+msgstr "Mesclagem lado a lado das diferenças entre ARQUIVO1 e ARQUIVO2."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "impossível mesclar interativamente a entrada padrão"
+msgstr "não foi possível mesclar interativamente a entrada padrão"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
-msgstr "os dois arquivos a serem comparados são diretórios"
+msgstr "os dois arquivos a serem comparados são diretórios"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1493,19 +1546,29 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\tEditar e então usar ambas as versões, cada uma com seu cabeçalho.\n"
-"eb:\tEditar e então usar ambas as versões.\n"
-"el:\tEditar e então usar a versão da esquerda.\n"
-"er:\tEditar e então usar a versão da direita.\n"
-"e:\tEditar uma nova versão.\n"
-"l:\tUsar a versão da esquerda.\n"
-"r:\tUsar a versão da direita.\n"
-"s:\tIncluir silenciosamente as linhas idênticas.\n"
-"v:\tIncluir verbosamente as linhas idênticas.\n"
-"q:\tSair.\n"
+"ed:\tEdita e, então, usa ambas as versões, cada uma com seu cabeçalho.\n"
+"eb:\tEdita e, então, usa ambas as versões.\n"
+"el ou e1:\tEdita e, então, usa a versão da esquerda.\n"
+"er ou e2:\tEdita e, então, usa a versão da direita.\n"
+"e:\tEdita uma nova versão.\n"
+"l ou 1:\tUsa a versão da esquerda.\n"
+"r ou 2:\tUsa a versão da direita.\n"
+"s:\tInclui silenciosamente as linhas idênticas.\n"
+"v:\tInclui verbosamente as linhas idênticas.\n"
+"q:\tSai.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: opção não reconhecida \"--%s\"\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
 
 #~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: a opção -- %c é ilegal\n"
+#~ msgstr "%s: a opção -- %c é ilegal\n"
 
 #~ msgid ""
 #~ "This program comes with NO WARRANTY, to the extent permitted by law.\n"
@@ -1513,20 +1576,20 @@ msgstr ""
 #~ "under the terms of the GNU General Public License.\n"
 #~ "For more information about these matters, see the files named COPYING."
 #~ msgstr ""
-#~ "Este programa não tem nenhum tipo de garantia, o tanto quanto\n"
-#~ "é permitido por lei. Você pode redistribuir cópias deste\n"
-#~ "programa sob os termos da Licença Pública Geral GNU. Para\n"
-#~ "mais informações a este respeito, leia o arquivo COPYING."
+#~ "Este programa não tem nenhum tipo de garantia, o tanto quanto\n"
+#~ "é permitido por lei. Você pode redistribuir cópias deste\n"
+#~ "programa sob os termos da Licença Pública Geral GNU. Para\n"
+#~ "mais informações a este respeito, leia o arquivo COPYING."
 
 #~ msgid "Written by Torbjorn Granlund and David MacKenzie."
-#~ msgstr "Escrito por Torbjörn Granlund e David MacKenzie."
+#~ msgstr "Escrito por Torbjörn Granlund e David MacKenzie."
 
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SALTO1:SALTO2  --ignore-initial=SALTO1:SALTO2"
 
 #~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
 #~ msgstr ""
-#~ "-s  --quiet  --silent       Não exibir nada; retornar apenas o status de "
+#~ "-s  --quiet  --silent       Não exibir nada; retornar apenas o status de "
 #~ "fim."
 
 #~ msgid "--help  Output this help."
@@ -1543,10 +1606,10 @@ msgstr ""
 #~ "Richard Stallman, e Len Tower."
 
 #~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "a opção `-%ld' está obsoleta; usar `-%c %ld'"
+#~ msgstr "a opção `-%ld' está obsoleta; usar `-%c %ld'"
 
 #~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "a opção `-%ld' está obsoleta; omita-a"
+#~ msgstr "a opção `-%ld' está obsoleta; omita-a"
 
 #~ msgid ""
 #~ "-c  -C NUM  --context[=NUM]  Output NUM (default 3) lines of copied "
@@ -1557,18 +1620,18 @@ 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 N  --context[=N]     Exibir o contexto regular das diferenças\n"
+#~ "-c  -C N  --context[=N]     Exibir o contexto regular das diferenças\n"
 #~ "                            usando N linhas de contexto (N=3 por "
-#~ "padrão).\n"
-#~ "-u  -U N  --unified[=N]     Exibir o contexto unificado das diferenças\n"
+#~ "padrão).\n"
+#~ "-u  -U N  --unified[=N]     Exibir o contexto unificado das diferenças\n"
 #~ "                            usando N linhas de contexto (N=3 por "
-#~ "padrão).\n"
-#~ "         --label RÓTULO     Usar RÓTULO em vez do nome do arquivo.\n"
-#~ "  -p  --show-c-function     Mostrar em qual função C (ed) está cada "
-#~ "diferença.\n"
+#~ "padrão).\n"
+#~ "         --label RÓTULO     Usar RÓTULO em vez do nome do arquivo.\n"
+#~ "  -p  --show-c-function     Mostrar em qual função C (ed) está cada "
+#~ "diferença.\n"
 #~ "  -F EXPREG  --show-function-line=EXPREG\n"
 #~ "                            Exibir a linha mais recente que corresponde\n"
-#~ "                            à EXPressão REGular."
+#~ "                            à EXPressão REGular."
 
 #~ msgid ""
 #~ "-y  --side-by-side  Output in two columns.\n"
@@ -1577,23 +1640,23 @@ msgstr ""
 #~ "  --suppress-common-lines  Do not output common lines."
 #~ msgstr ""
 #~ "-y  --side-by-side          Exibir em duas colunas.\n"
-#~ "  -W N  --width=N           Exibir no máximo N colunas. (N=130 por "
-#~ "padrão)\n"
+#~ "  -W N  --width=N           Exibir no máximo N colunas. (N=130 por "
+#~ "padrão)\n"
 #~ "  --left-column             Exibir apenas a coluna da esquerda nas "
 #~ "linhas\n"
-#~ "                            idênticas.\n"
-#~ "  --suppress-common-lines   Não exibir as linhas idênticas."
+#~ "                            idênticas.\n"
+#~ "  --suppress-common-lines   Não exibir as linhas idênticas."
 
 #~ msgid ""
 #~ "--speed-large-files  Assume large files and many scattered small changes."
 #~ msgstr ""
-#~ "--speed-large-files         Assumir arquivos grandes e muitas alterações\n"
+#~ "--speed-large-files         Assumir arquivos grandes e muitas alterações\n"
 #~ "                            pequenas espalhadas."
 
 #~ msgid "-X  Output overlapping changes, bracketing them."
 #~ msgstr ""
-#~ "-X                          Exibir as diferenças que se sobrepõem,\n"
-#~ "                              entre parênteses."
+#~ "-X                          Exibir as diferenças que se sobrepõem,\n"
+#~ "                              entre parênteses."
 
 #~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
 #~ msgstr ""
@@ -1602,10 +1665,10 @@ msgstr ""
 #~ "                              (implica -A)."
 
 #~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L RÓTULO  --label=RÓTULO   Usar RÓTULO em vez do nome do arquivo."
+#~ msgstr "-L RÓTULO  --label=RÓTULO   Usar RÓTULO em vez do nome do arquivo."
 
 #~ msgid "subsidiary program `%s' failed"
 #~ msgstr "o programa auxiliar `%s' falhou"
 
 #~ msgid "subsidiary program `%s' not executable"
-#~ msgstr "o programa auxiliar `%s' não é executável"
+#~ msgstr "o programa auxiliar `%s' não é executável"
index cf1e958..51bed8e 100644 (file)
Binary files a/po/ro.gmo and b/po/ro.gmo differ
index 9f32c4a..d21127e 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.3\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2003-08-22 08:43+0300\n"
 "Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -16,6 +16,21 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-2\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "valoare --bytes invalidã `%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "valoare --bytes invalidã `%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "eroare de program"
@@ -24,114 +39,167 @@ msgstr "eroare de program"
 msgid "stack overflow"
 msgstr "stivã plinã(overflow)"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Eroare de sistem necunoscutã"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "fiºier obiºnuit(regular) vid"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "fiºier obiºnuit"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "director"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "fiºier bloc special"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "fiºier caracter special"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "legãturã simbolicã"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "coadã(queue) de mesaje"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "obiect memorie globalã(shared memory)"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 #, fuzzy
 msgid "typed memory object"
 msgstr "obiect memorie globalã(shared memory)"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "fiºier bloc special"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "fiºier caracter special"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "fiºier bloc special"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "fiºier caracter special"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "fiºier ciudat"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "fiºier bloc special"
+
+#: 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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "fiºier ciudat"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: opþiunea `%s' este ambiguã\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opþiunea `-W %s' este ambiguã\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `--%s' nu permite parametri\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `%c%s' nu permite parametri\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: opþiunea `%s' necesitã un parametru\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: opþiune necunoscutã `--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: opþiune necunoscutã `%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: opþiune invalidã -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: opþiunea necesitã un parametru -- %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: opþiunea `-W %s' este ambiguã\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: opþiunea `-W %s' nu permite parametri\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: opþiunea `%s' necesitã un parametru\n"
@@ -157,83 +225,84 @@ msgstr "%s: op
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Succes"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Nici o potrivire"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Expresie normalã(regular) invalidã"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Caracter de comparare invalid"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Nume clasã caracter invalidã"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Backslash de sfârºit de linie(trailing)"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Referinþã precedentã invalidã"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ sau [^ neînchise"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( or \\( neînchise"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ neînchisã"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Conþinut invalid al \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Sfârºit de domeniu invalid"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Memorie plinã"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Expresie normalã de precedenþã invalidã"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Sfârºit prematur de expresie normalã"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Expresie normalã prea mare"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") or \\) nedeschise"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Nu a existat nici o expresie normalã antecedentã"
 
@@ -426,17 +495,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Fiºierele %s ºi %s diferã\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Fiºierele binare %s ºi %s diferã\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Nici un element de linie nouã la sfârºitul fiºierului"
 
@@ -450,7 +519,7 @@ msgstr ""
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Încercaþi  `%s --help' pentru mai multe informaþii."
@@ -465,14 +534,12 @@ msgstr "invalid --se ignor
 msgid "options -l and -s are incompatible"
 msgstr "opþiunile -l ºi -s sunt incompatibile"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "scriere eºuatã"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "ieºire(output) standard"
 
@@ -537,7 +604,7 @@ msgid ""
 msgstr ""
 "OMIS1 ºi OMIS2 sunt numerele de octeþi care sã fie omiºi din fiecare fiºier."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -558,7 +625,7 @@ 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."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 
@@ -567,27 +634,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "valoare --bytes invalidã `%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "lipseºte operandul dupã `%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "operand în plus(extra) `%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s diferã: octetul %s, linia %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF în %s\n"
@@ -617,133 +684,136 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "lungime invalidã de context `%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "paginaþie nesuportatã de acest host"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "prea multe opþiuni de etichete fiºier"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "lungime invalidã `%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "opþiuni de lungime în conflict"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "lungime de orizont invalidã `%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "mãrime tab invalidã `%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "opþiuni mãrime tab în conflict"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr " --from-file ºi --to-file sunt specificate împreunã"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  Afiºeazã un diff normal."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  Afiºeazã doar dacã fiºierele diferã."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 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."
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, fuzzy
 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."
 
-#: src/diff.c:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  Afiºeazã un script ed."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  Afiºeazã un diff în format RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 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."
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 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."
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  Nu afiºa liniile comune."
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=FIªIER1  Comparã FIªIER1 cu toþi operanzii.  FIªIER1 poate fi "
+"director."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  Schimbã tab-urile în spaþii la ieºire(output)."
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 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."
 
-#: src/diff.c:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
@@ -751,56 +821,56 @@ msgstr ""
 "--tabsize=NUM  Opririle tab-ului vor fi la fiecare NUM (implicit 8) coloane "
 "tipãrite."
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l  --paginate  Trimite ieºirea(output) prin `pr' pentru a fi paginatã."
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive  Comparã recursiv orice subdirector întâlnit."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  Trateazã fiºierele lipsã ca vide."
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "--unidirectional-new-file  Trateazã primele fiºiere lipsã ca vide."
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 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."
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, fuzzy
 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."
 
-#: src/diff.c:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x TIP  --exclude=TIP  Exclude fiºierele care se potrivesc TIParului."
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -808,7 +878,7 @@ msgstr ""
 "-X FIªIER  --exclude-from=FIªIER  Exclude fiºierele care se potrivesc "
 "oricãrui tipar din FIªIER."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
@@ -816,7 +886,7 @@ msgstr ""
 "-S FIªIER  --starting-file=FIªIER  Începe cu FIªIER în compararea "
 "directoarelor."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -825,7 +895,7 @@ msgstr ""
 "--from-file=FIªIER1  Comparã FIªIER1 cu toþi operanzii.  FIªIER1 poate fi "
 "director."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -834,37 +904,37 @@ msgstr ""
 "--to-file=FIªIER2  Comparã toþi operanzii cu FIªIER2.  FIªIER2 poate fi "
 "director."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case  Ignorã diferenþele de caz din conþinutul fiºierului."
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  Ignorã schimbãrile produse de modificarea tab-"
 "ului."
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  Ignorã tot spaþiul vid."
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 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."
 
-#: src/diff.c:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  Ignorã tot spaþiul vid."
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
@@ -872,31 +942,31 @@ msgstr ""
 "-B  --ignore-blank-lines  Ignorã schimbãrile unde toate liniile sunt "
 "goale(blank)."
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 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."
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  Trateazã toate fiºierele ca text."
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "--strip-trailing-cr  Eliminã returul de car(carriage return) final la "
 "intrare(input)."
 
-#: src/diff.c:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  Citeºte ºi scrie date în mod binar."
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
@@ -904,38 +974,38 @@ msgstr ""
 "-D NUME  --ifdef=NUME  Afiºeazã fiºierul rezultat(merged) pentru a arãta "
 "diff-urile`#ifdef NAME'."
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 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."
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "--line-format=LFMT  Similar, dar formateazã toate liniile cu LFMT."
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 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."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE este `old', `new', sau `unchanged'.  GTYPE este LTYPE sau `changed'."
 
-#: src/diff.c:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -965,7 +1035,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -979,7 +1049,7 @@ msgstr ""
 "    %[-][WIDTH][.[PREC]]{doxX}n  specificaþii  stil printf-pentru "
 "introducerea numãrului de linie"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -993,18 +1063,18 @@ msgstr ""
 "    %c'C'  caracterul singular C\n"
 "    %c'\\OOO'  caracterul cu codul octal OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 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"
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, fuzzy
 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."
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1012,24 +1082,44 @@ msgstr ""
 "-H  --speed-large-files  Presupune fiºiere mari ºi multe modificãri mici "
 "împrãºtiate."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  Afiºeazã un diff normal."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  Tipãreºte informaþii despre versiune."
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+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'."
 
-#: src/diff.c:942
+#: src/diff.c:975
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
@@ -1037,61 +1127,66 @@ msgstr ""
 "Dacã --from-file sau --to-file sunt precizate, nu existã restricþii pe "
 "FIªIERE."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "Dacã FIªIER este `-', se citeºte intrarea(input) standard."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Folosire: %s [OPÞIUNE]... FIªIERE\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "Comparã fiºierele linie cu linie."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "Existã un conflict cu %s în valoarea opþiunii `%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "Conflict în opþiunile stilului de afiºare(output)"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "lungime invalidã `%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Doar în %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "nu se poate compara `-' cu un director"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "opþiunea -D nu este compatibilã cu directoarele"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Subdirectoare comune: %s ºi %s.\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Fiºierele %s ºi %s diferã\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Fiºierele %s ºi %s sunt identice\n"
@@ -1112,7 +1207,7 @@ msgstr "op
 msgid "'-' specified for more than one input file"
 msgstr "`-' specificat pentru mai mult de un fiºier de intrare(input)"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "citire eºuatã"
@@ -1249,33 +1344,33 @@ msgstr "eroare intern
 msgid "invalid diff format; invalid change separator"
 msgstr "format diff invalid; separator de modificare invalid"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "format diff invalid; ultimã-linie incompletã"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "programul subsidiar `%s' nu a fost gãsit"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "format diff invalid; caractere precedente liniei incorecte"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "eroare internã: tip invalid de diff trimis spre ieºire(output)"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "fiºier de intrare(input) micºorat"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "nu se pot compara numele de fiºiere `%s' ºi `%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1453,6 +1548,16 @@ msgstr ""
 "v:\tInclude detaliat liniile comune.\n"
 "q:\tIeºire.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: opþiune necunoscutã `--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: opþiune ilegalã -- %c\n"
 
index dba474e..d96bb10 100644 (file)
Binary files a/po/ru.gmo and b/po/ru.gmo differ
index 98af96c..151f30a 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.7\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2007-02-13 07:13+0300\n"
 "Last-Translator: Oleg S. Tihonov <ost@tatnipi.ru>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -15,6 +15,21 @@ msgstr ""
 "Content-Type: text/plain; charset=koi8-r\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ --bytes `%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ --bytes `%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "ÏÛÉÂËÁ ÐÒÏÇÒÁÍÍÙ"
@@ -23,113 +38,166 @@ msgstr "
 msgid "stack overflow"
 msgstr "ÐÅÒÅÐÏÌÎÅÎÉÅ ÓÔÅËÁ"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "ÏÂÙÞÎÙÊ ÐÕÓÔÏÊ ÆÁÊÌ"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "ÏÂÙÞÎÙÊ ÆÁÊÌ"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "ËÁÔÁÌÏÇ"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÂÌÏÞÎÙÍ ÄÏÓÔÕÐÏÍ"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÓÉÍ×ÏÌØÎÙÍ ÄÏÓÔÕÐÏÍ"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "ÏÞÅÒÅÄØ"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "ÓÉÍ×ÏÌØÎÁÑ ÓÓÙÌËÁ"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "ÓÏËÅÔ"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "ÏÞÅÒÅÄØ ÓÏÏÂÝÅÎÉÊ"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "ÓÅÍÁÆÏÒ"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "ÒÁÚÄÅÌÑÅÍÙÊ ÏÂßÅËÔ"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "ÏÂßÅËÔ ÔÉÐÉÚÉÒÏ×ÁÎÎÏÊ ÐÁÍÑÔÉ"
 
-#: lib/file-type.c:70
+#: 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 "ÏÞÅÒÅÄØ"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÂÌÏÞÎÙÍ ÄÏÓÔÕÐÏÍ"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "ÓÐÅÃÉÁÌØÎÙÊ ÆÁÊÌ Ó ÐÏÓÉÍ×ÏÌØÎÙÍ ÄÏÓÔÕÐÏÍ"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "ÓÔÒÁÎÎÙÊ ÆÁÊÌ"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: ËÌÀÞ %c ÄÏÌÖÅΠÂÙ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅΠÉÓÐÏÌØÚÏ×ÁÔØÓÑ c ÁÒÇÕÍÅÎÔÏÍ\n"
@@ -155,83 +223,84 @@ msgstr "%s: 
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "õÓÐÅÈ"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "óÏ×ÐÁÄÅÎÉÊ ÎÅÔ"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "îÅ×ÅÒÎÏÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "îÅÄÏÐÕÓÔÉÍÙÊ ÄÌÑ ÓÏÒÔÉÒÏ×ËÉ ÓÉÍ×ÏÌ"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "îÅ×ÅÒÎÏÅ ÉÍÑ ËÌÁÓÓÁ ÓÉÍ×ÏÌÁ"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "ïÂÒÁÔÎÁÑ ËÏÓÁÑ ÞÅÒÔÁ ÓÔÏÉÔ ÐÏÓÌÅÄÎÅÊ"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "îÅ×ÅÒÎÁÑ ÓÓÙÌËÁ"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "îÅÐÁÒÎÁÑ [ ÉÌÉ [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "îÅÐÁÒÎÁÑ ( ÉÌÉ \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "îÅÐÁÒÎÁÑ \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "îÅ×ÅÒÎÏÅ ÓÏÄÅÒÖÉÍÏÅ \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "îÅ×ÅÒÎÙÊ ÎÉÖÎÉÊ ÐÒÅÄÅÌ"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "ïÐÅÒÁÔÉ×ÎÁÑ ÐÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "îÅ×ÅÒÎÏÅ ÐÒÅÄÛÅÓÔ×ÕÀÝÅÅ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "ðÒÅÖÄÅ×ÒÅÍÅÎÎÙÊ ËÏÎÅàÒÅÇÕÌÑÒÎÏÇÏ ×ÙÒÁÖÅÎÉÑ"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÓÌÉÛËÏÍ ×ÅÌÉËÏ"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "îÅÐÁÒÎÁÑ ) ÉÌÉ \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "òÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ÎÅ ÂÙÌÏ ÚÁÄÁÎÏ ÒÁÎØÛÅ"
 
@@ -441,17 +510,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "æÁÊÌÙ %s É %s ÒÁÚÌÉÞÁÀÔÓÑ\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, fuzzy, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "æÁÊÌÙ %s É %s ÒÁÚÌÉÞÁÀÔÓÑ\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "÷ ËÏÎÃÅ ÆÁÊÌÁ ÎÅÔ ÎÏ×ÏÊ ÓÔÒÏËÉ"
 
@@ -465,7 +534,7 @@ msgstr "
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ."
@@ -480,14 +549,12 @@ msgstr "
 msgid "options -l and -s are incompatible"
 msgstr "ËÌÀÞÉ -l É -s ÎÅÓÏ×ÍÅÓÔÉÍÙ"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "ÚÁÐÉÓØ ÎÅÕÓÐÅÛÎÁ"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ"
 
@@ -549,7 +616,7 @@ msgid ""
 "at the beginning of each file (zero by default)."
 msgstr "î1 É î2 -- ÜÔÏ ÞÉÓÌÏ ÂÁÊÔ, ËÏÔÏÒÙÅ ÓÌÅÄÕÅÔ ÐÒÏÐÕÓÔÉÔØ × ËÁÖÄÏÍ ÆÁÊÌÅ."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -569,7 +636,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "åÓÌÉ æáêì ÎÅ ÚÁÄÁΠÉÌÉ ÚÁÄÁΠËÁË `-', ÞÉÔÁÅÔ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "÷ÙÈÏÄÎÏÊ ÓÔÁÔÕÓ ÒÁ×ÅΠ0, ÅÓÌÉ ×ÈÏÄÎÙÅ ÆÁÊÌÙ ÉÄÅÎÔÉÞÎÙ, 1 -- ÅÓÌÉ\n"
@@ -580,27 +647,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÏÅ ÚÎÁÞÅÎÉÅ --bytes `%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "ÐÒÏÐÕÝÅΠÏÐÅÒÁÎÄ ÐÏÓÌÅ `%s'"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "ÉÚÌÉÛÎÉÊ ÏÐÅÒÁÎÄ `%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s ÒÁÚÌÉÞÁÀÔÓÑ: ÂÁÊÔ %s, ÓÔÒÏËÁ %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: ËÏÎÅàÆÁÊÌÁ × %s\n"
@@ -630,69 +697,69 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ ËÏÎÔÅËÓÔÁ `%s'"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "ÒÁÚÂÉÅÎÉÅ ÎÁ ÓÔÒÁÎÉÃÙ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ ÎÁ ÄÁÎÎÏÊ ÍÁÛÉÎÅ"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ËÌÀÞÅÊ ÚÁÄÁÀÝÉÈ ÍÅÔËÉ ÆÁÊÌÏ×"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÛÉÒÉÎÁ `%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ËÌÀÞÉ ÚÁÄÁÎÉÑ ÛÉÒÉÎÙ"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÄÌÉÎÁ ÇÏÒÉÚÏÎÔÁ `%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÛÉÒÉÎÁ ÔÁÂÕÌÑÃÉÉ `%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ËÌÀÞÉ ÚÁÄÁÎÉÑ ÛÉÒÉÎÙ ÔÁÂÕÌÑÃÉÉ"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "ÎÅÏÂÈÏÄÉÍÏ ÚÁÄÁÔØ ËÁË --from-file, ÔÁË É --to-file"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal  ÷Ù×ÏÄÉÔØ × ÏÂÙÞÎÏÍ ÆÏÒÍÁÔÅ diff."
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  îÁÐÅÞÁÔÁÔØ ÔÏÌØËÏ ÒÁÚÌÉÞÁÀÔÓÑ ÌÉ ÆÁÊÌÙ."
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  óÏÏÂÝÁÔØ Ï ÏÄÉÎÁËÏ×ÙÈ ÆÁÊÌÁÈ."
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
@@ -700,21 +767,21 @@ msgstr ""
 "-w þéóìï  --width=þéóìï  ÷Ù×ÏÄÉÔØ ÍÁËÓÉÍÕÍ ÚÁÄÁÎÎÏÅ þéóìï ÚÎÁËÏ× × ÓÔÒÏËÅ.\n"
 "                         (ÐÏ ÕÍÏÌÞÁÎÉÀ 130)"
 
-#: src/diff.c:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed  ÷Ù×ÏÄÉÔØ ÓÃÅÎÁÒÉÊ ed."
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs  ÷Ù×ÏÄÉÔØ × ÆÏÒÍÁÔÅ RCS."
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
@@ -722,100 +789,103 @@ msgstr ""
 "-w þéóìï  --width=þéóìï  ÷Ù×ÏÄÉÔØ ÍÁËÓÉÍÕÍ ÚÁÄÁÎÎÏÅ þéóìï ÚÎÁËÏ× × ÓÔÒÏËÅ.\n"
 "                         (ÐÏ ÕÍÏÌÞÁÎÉÀ 130)"
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column  ÷Ù×ÏÄÉÔØ ÔÏÌØËÏ ÌÅ×ÕÀ ËÏÌÏÎËÕ ÏÂÝÉÈ ÓÔÒÏË."
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  îÅ ×Ù×ÏÄÉÔØ ÏÂÝÉÅ ÓÔÒÏËÉ."
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=æáêì1  óÒÁ×ÎÉÔØ æáêì1 ÓÏ ×ÓÅÍÉ ÏÐÅÒÁÎÄÁÍÉ.\n"
+"                   æáêì1 ÍÏÖÅÔ ÂÙÔØ ËÁÔÁÌÏÇÏÍ."
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs  òÁÓËÒÙ×ÁÔØ ÐÒÉ ×Ù×ÏÄÅ ÓÉÍ×ÏÌÙ ÔÁÂÕÌÑÃÉÉ × ÐÒÏÂÅÌÙ."
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab  ÷ÙÒÁ×ÎÉ×ÁÔØ ÔÁÂÕÌÑÃÉÀ ÄÏÂÁ×ÌÑÑ × ÎÁÞÁÌÏ ÓÉÍ×ÏÌ ÔÁÂÕÌÑÃÉÉ."
 
-#: src/diff.c:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "--tabsize=þéóìï  ôÁÂÕÌÑÃÉÑ ÞÅÒÅÚ ÚÁÄÁÎÎÏÅ þéóìï ÚÎÁËÏ× (ÐÏ ÕÍÏÌÞÁÎÉÀ 8)."
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l  --paginate  îÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÐÒÏÇÒÁÍÍÅ `pr' ÄÌÑ ÒÁÚÂÉÅÎÉÑ ÎÁ ÓÔÒÁÎÉÃÙ."
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive  òÅËÕÒÓÉ×ÎÏ ÓÒÁ×ÎÉ×ÁÔØ ÐÏÄËÁÔÁÌÏÇÉ."
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file  ÷ÏÓÐÒÉÎÉÍÁÔØ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÅ ÆÁÊÌÙ ËÁË ÐÕÓÔÙÅ."
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "--unidirectional-new-file  ÷ÏÓÐÒÉÎÉÍÁÔØ ÎÅÓÕÝÅÓÔ×ÕÀÝÉÅ ÐÅÒ×ÙÅ ÆÁÊÌÙ ËÁË "
 "ÐÕÓÔÙÅ."
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "--ignore-file-name-case  éÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÉÍÅÎÁÈ ÆÁÊÌÏ×."
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr "--no-ignore-file-name-case  õÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÉÍÅÎÁÈ ÆÁÊÌÏ×."
 
-#: src/diff.c:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x ïâòáúåã --exclude=ïâòáúåã  éÓËÌÀÞÉÔØ ÆÁÊÌÙ, ÞØÉ ÉÍÅÎÁ ÓÏ×ÐÁÄÁÀÔ Ó "
 "ïâòáúãïí."
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
@@ -824,13 +894,13 @@ msgstr ""
 "ÌÉÂÏ\n"
 "                              ÏÂÒÁÚÃÏÍ ÉÚ ÚÁÐÉÓÁÎÎÙÈ × æáêìå."
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr "-S æáêì  --starting-file=æáêì  ðÒÉ ÓÒÁ×ÎÅÎÉÉ ËÁÔÁÌÏÇÏ× ÎÁÞÁÔØ Ó æáêìá."
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -839,7 +909,7 @@ msgstr ""
 "--from-file=æáêì1  óÒÁ×ÎÉÔØ æáêì1 ÓÏ ×ÓÅÍÉ ÏÐÅÒÁÎÄÁÍÉ.\n"
 "                   æáêì1 ÍÏÖÅÔ ÂÙÔØ ËÁÔÁÌÏÇÏÍ."
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -848,43 +918,43 @@ msgstr ""
 "--to-file=æáêì2  óÒÁ×ÎÉÔØ ×ÓÅ ÏÐÅÒÁÎÄÙ Ó æáêìïí2.  æáêì2 ÍÏÖÅÔ ÂÙÔØ "
 "ËÁÔÁÌÏÇÏÍ."
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i  --ignore-case  éÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ ÂÕË× × ÓÏÄÅÒÖÉÍÏÍ ÆÁÊÌÏ×."
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion  éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ, ×ÙÚ×ÁÎÎÙÅ ÒÁÓËÒÙÔÉÅÍ "
 "ÔÁÂÕÌÑÃÉÉ."
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space  éÇÎÏÒÉÒÏ×ÁÔØ ×ÓÅ ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ."
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr ""
 "-b  --ignore-space-change  éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ÞÉÓÌÁ ÐÒÏÂÅÌØÎÙÈ ÓÉÍ×ÏÌÏ×."
 
-#: src/diff.c:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space  éÇÎÏÒÉÒÏ×ÁÔØ ×ÓÅ ÐÒÏÂÅÌØÎÙÅ ÓÉÍ×ÏÌÙ."
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B  --ignore-blank-lines  éÇÎÏÒÉÒÏ×ÁÔØ ÉÚÍÅÎÅÎÉÑ ÞÉÓÌÁ ÐÕÓÔÙÈ ÓÔÒÏË."
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
@@ -892,29 +962,29 @@ msgstr ""
 "                        ÐÏÌÎÏÓÔØÀ ÓÏÏÔ×ÅÔÓÔ×ÕÀÔ ÚÁÄÁÎÎÏÍÕ ÒÅÇÕÌÑÒÎÏÍÕ "
 "×ÙÒÁÖÅÎÉÀ"
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text  óÞÉÔÁÔØ ×ÓÅ ÆÁÊÌÙ ÔÅËÓÔÏ×ÙÍÉ."
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "--strip-trailing-cr  õÄÁÌÉÔØ ÎÁ ×Ù×ÏÄÅ ÚÁ×ÅÒÛÁÀÝÉÊ ×ÏÚ×ÒÁÔ ËÁÒÅÔËÉ."
 
-#: src/diff.c:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary  þÉÔÁÔØ É ÚÁÐÉÓÙ×ÁÔØ ÆÁÊÌÙ × Ä×ÏÉÞÎÏÊ ÆÏÒÍÅ."
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D éíñ  --ifdef=éíñ  ÷Ù×ÏÄÉÔØ ÚÁÐÌÁÔÙ, ÉÓÐÏÌØÚÕÀÝÉÅ ËÏÎÓÔÒÕËÃÉÀ `#ifdef éíñ'."
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
@@ -922,13 +992,13 @@ msgstr ""
 "çôéð\n"
 "                          × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÆÏÒÍÁÔÏÍ çæíô."
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "--line-format=óæíô  áÎÁÌÏÇÉÞÎÏ, ÎÏ ÆÏÒÍÁÔÉÒÏ×ÁÔØ ×ÓÅ ×ÈÏÄÎÙÅ ÓÔÒÏËÉ Ó óæíô."
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
@@ -936,19 +1006,19 @@ msgstr ""
 "óôéð\n"
 "                          × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÆÏÒÍÁÔÏÍ óæíô."
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  óôéð ÍÏÖÅÔ ÂÙÔØ `old', `new', ÉÌÉ `unchanged', çôéð -- ÔÏ ÖÅ É `changed'."
 
-#: src/diff.c:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -977,7 +1047,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -990,7 +1060,7 @@ msgstr ""
 "    %l  ÓÏÄÅÒÖÉÍÏÅ ÓÔÒÏËÉ, ÉÓËÌÀÞÁÑ ×ÓÅ ÎÏ×ÙÅ ÓÔÒÏËÉ × ËÏÎÃÅ\n"
 "    %[-][ûéòéîá][.[ôïþî]]{doxX}n  ÆÏÒÍÁÔ ÎÏÍÅÒÁ ×ÈÏÄÎÏÊ ÓÔÒÏËÉ × ÓÔÉÌÅ printf"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -1004,18 +1074,18 @@ msgstr ""
 "    %c'ó'  ÏÄÉΠÓÉÍ×ÏÌ ó\n"
 "    %c'\\OOO'  ÏÄÉΠÓÉÍ×ÏÌ Ó ×ÏÓØÍÅÒÉÞÎÙÍ ËÏÄÏÍ OOO"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal  ðÙÔÁÔØÓÑ ÎÁÊÔÉ ÎÁÉÍÅÎØÛÉÊ ÎÁÂÏÒ ÉÚÍÅÎÅÎÉÊ."
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "--horizon-lines=þéóìï  ÷Ù×ÏÄÉÔØ þéóìï ÏÂÝÉÈ ÓÔÒÏË ÄÏ É ÐÏÓÌÅ ÒÁÚÌÉÞÁÀÝÉÈÓÑ."
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
@@ -1023,84 +1093,109 @@ msgstr ""
 "-H  --speed-large-files  ðÒÅÄÐÏÌÁÇÁÔØ, ÞÔÏ ÆÁÊÌÙ ÂÏÌØÛÉÅ ÓÏ ÍÎÏÇÉÍÉ\n"
 "                         ÒÁÚÂÒÏÓÁÎÎÙÍÉ ÍÅÌËÉÍÉ ÉÚÍÅÎÅÎÉÑÍÉ."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal  ÷Ù×ÏÄÉÔØ × ÏÂÙÞÎÏÍ ÆÏÒÍÁÔÅ diff."
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version  ðÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ É ×ÙÊÔÉ."
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "æáêìù ÜÔÏ `æáêì1 æáêì2', ÉÌÉ `ëáôáìïç1 ëáôáìïç2', ÉÌÉ `ëáôáìïç æáêì...',\n"
 "ÉÌÉ `æáêì... ëáôáìïç'."
 
-#: src/diff.c:942
+#: src/diff.c:975
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "åÓÌÉ ÚÁÄÁΠ--from-file ÉÌÉ --to-file, ÎÁ æáêìù ÎÅÔ ÏÇÒÁÎÉÞÅÎÉÊ."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "åÓÌÉ æáêì ÚÁÄÁΠËÁË `-', ÞÉÔÁÅÔ ÓÔÁÎÄÁÒÔÎÙÊ ××ÏÄ."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþ]... æáêìù\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "ðÏÓÔÒÏÞÎÏ ÓÒÁ×ÎÉ×ÁÅÔ Ä×Á ÆÁÊÌÁ."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÏÅ ÚÎÁÞÅÎÉÅ %s ÄÌÑ ËÌÀÞÁ `%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "ÐÒÏÔÉ×ÏÒÅÞÉ×ÙÅ ËÌÀÞÉ ÚÁÄÁÎÉÑ ÓÔÉÌÑ ×Ù×ÏÄÁ"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ÎÅÄÏÐÕÓÔÉÍÁÑ ÛÉÒÉÎÁ `%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "ôÏÌØËÏ × %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÒÁ×ÎÉÔØ `-' Ó ËÁÔÁÌÏÇÏÍ"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D option not supported with directories"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "ïÂÝÉÅ ÐÏÄËÁÔÁÌÏÇÉ: %s É %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "æÁÊÌ %s ÜÔÏ %s, ÔÏÇÄÁ ËÁË ÆÁÊÌ %s -- %s\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "æÁÊÌÙ %s É %s ÒÁÚÌÉÞÁÀÔÓÑ\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "æÁÊÌÙ %s É %s ÉÄÅÎÔÉÞÎÙ\n"
@@ -1120,7 +1215,7 @@ msgstr "
 msgid "'-' specified for more than one input file"
 msgstr "`-' ÚÁÄÁΠÄÌÑ ÂÏÌÅÅ ÏÄÎÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "ÞÔÅÎÉÅ ÎÅÕÓÐÅÛÎÏ"
@@ -1259,33 +1354,33 @@ msgstr "
 msgid "invalid diff format; invalid change separator"
 msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ ÉÚÍÅÎÅÎÉÑ"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅÐÏÌÎÁÑ ÐÏÓÌÅÄÎÑÑ ÓÔÒÏËÁ"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "ÎÅ ÕÄÁÌÏÓØ ÚÁÐÕÓÔÉÔØ ×ÓÐÏÍÏÇÁÔÅÌØÎÕÀ ÐÒÏÇÒÁÍÍÕ `%s'"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ÎÅ×ÅÒÎÙÊ ÆÏÒÍÁÔ ÚÁÐÌÁÔÙ; ÎÅÐÒÁ×ÌØÎÙÅ ÐÅÒ×ÙÅ ÓÉÍ×ÏÌÙ ÓÔÒÏËÉ"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ: ÎÁ ×ÙÈÏÄ ÐÅÒÅÄÁΠÎÅ×ÅÒÎÙÊ ÔÉРÚÁÐÌÁÔÙ"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "×ÈÏÄÎÏÊ ÆÁÊÌ ÕÍÅÎØÛÉÌÓÑ"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÒÁ×ÎÉÔØ ÉÍÅÎÁ ÆÁÊÌÏ× `%s' É `%s'"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1457,6 +1552,16 @@ msgstr ""
 "v:\t÷ËÌÀÞÁÔØ ÏÂÝÉÅ ÓÔÒÏËÉ, ×ÙÄÁ×ÁÑ ÓÏÏÂÝÅÎÉÅ.\n"
 "q:\t÷ÙÊÔÉ.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n"
 
index 6ab9f34..2893d37 100644 (file)
Binary files a/po/sr.gmo and b/po/sr.gmo differ
index e66970f..0c1c9b5 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,19 +1,37 @@
 # Serbian translation of `diffutils'.
 # Copyright (C) 2004 Free Software Foundation, Inc.
-# This file is distributed under the same license as the `diffutils' package.
+# This file is distributed under the same license as the diffutils package.
 # Aleksandar Jelenak <jelenak@netlinkplus.net>, 2004.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.7\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-04-15 21:46-0400\n"
-"Last-Translator: Aleksandar Jelenak <jelenak@netlinkplus.net>\n"
-"Language-Team: Serbian <gnu@prevod.org>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2013-10-07 11:40+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <(nothing)>\n"
 "Language: sr\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"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "неисправан %s%s аргумент „%s“"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "неисправан %s%s аргумент „%s“"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -23,116 +41,169 @@ msgstr "грешка програма"
 msgid "stack overflow"
 msgstr "стек препуњен"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Непозната системска грешка"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "обична празна датотека"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "обична датотека"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "директоријум"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "датотека блоковског уређаја"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "датотека знаковног уређаја"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "симболичка веза"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "сокет"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "ред порука"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "семафор"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "заједнички меморијски објекат"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "типски меморијски објекат"
 
-#: lib/file-type.c:70
+#: 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 "пупи"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "датотека блоковског уређаја"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "датотека знаковног уређаја"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "чудна датотека"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s: Ð¾Ð¿Ñ\86иÑ\98а â\80\9e%sâ\80\9c Ñ\98е Ð´Ð²Ð¾Ñ\81миÑ\81лена\n"
+msgstr "%s: Ð¾Ð¿Ñ\86иÑ\98а â\80\9e%sâ\80\9c Ñ\98е Ð½ÐµÑ\98аÑ\81на; Ð¼Ð¾Ð³Ñ\83Ñ\9bноÑ\81Ñ\82и:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: опција „-W %s“ је нејасна\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: опција „--%s“ не дозвољава аргумент\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: опција „%c%s“ не дозвољава аргумент\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: опција „%s“ захтева аргумент\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: непозната опција „--%s“\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: непозната опција „%c%s“\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s: Ð½ÐµÐ²Ð°Ð¶ÐµÑ\9bа Ð¾Ð¿Ñ\86иÑ\98а -- %c\n"
+msgstr "%s: Ð½ÐµÐ¸Ñ\81пÑ\80авна Ð¾Ð¿Ñ\86иÑ\98а -- â\80\9e%câ\80\9c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s: опција захтева аргумент -- %c\n"
+msgstr "%s: опција захтева аргумент -- „%c“\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
-msgstr "%s: Ð¾Ð¿Ñ\86иÑ\98а â\80\9e-W %sâ\80\9c Ñ\98е Ð´Ð²Ð¾Ñ\81миÑ\81лена\n"
+msgstr "%s: Ð¾Ð¿Ñ\86иÑ\98а â\80\9e-W %sâ\80\9c Ñ\98е Ð½ÐµÑ\98аÑ\81на\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: опција „-W %s“ не дозвољава аргумент\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
-msgstr "%s: опција „%s“ захтева аргумент\n"
+msgstr "%s: опција „-W %s“ захтева аргумент\n"
 
 #. TRANSLATORS:
 #. Get translations for open and closing quotation marks.
@@ -155,136 +226,136 @@ msgstr "%s: опција „%s“ захтева аргумент\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Успешно"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
-msgstr "Ð\91ез поклапања"
+msgstr "Ð\9dема поклапања"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Неисправан регуларни израз"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
-msgstr "Ð\9dеиÑ\81пÑ\80аван ÐºÐ¾Ð»Ð°Ñ\86иони Ð·Ð½Ð°Ðº"
+msgstr "Ð\9dеиÑ\81пÑ\80аван Ð·Ð½Ð°Ðº Ñ\81лагаÑ\9aа"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
-msgstr "Ð\9dепÑ\80авилно Ð¸Ð¼Ðµ ÐºÐ»Ð°Ñ\81е Ð·Ð½Ð°ÐºÐ¾Ð²а"
+msgstr "Ð\9dепÑ\80авилан Ð½Ð°Ð·Ð¸Ð² Ñ\80азÑ\80еда Ð·Ð½Ð°Ðºа"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Пратећа обрнута коса црта"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
-msgstr "Ð\9dеиÑ\81пÑ\80авна Ð¿Ð¾Ð²Ñ\80аÑ\82на Ñ\80еÑ\84еÑ\80енÑ\86а"
+msgstr "Ð\9dеиÑ\81пÑ\80авна Ð¿Ð¾Ð²Ñ\80аÑ\82на Ñ\83пÑ\83Ñ\82а"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Неупарено [ или [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Неупарено ( или \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Неупарено \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Неисправан садржај у \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Неисправан крај опсега"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
-msgstr "Меморија исцрпљена"
+msgstr "Меморија је исцрпљена"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Неисправан претходећи регуларни израз"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Преран завршетак регуларног израза"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
-msgstr "РегÑ\83лаÑ\80ни Ð¸Ð·Ñ\80аз исувише велики"
+msgstr "РегÑ\83лаÑ\80ан Ð¸Ð·Ñ\80аз Ñ\98е исувише велики"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Неупарено ) или \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
-msgstr "Ð\91ез Ð¿Ñ\80оÑ\88лог регуларног израза"
+msgstr "Ð\9dема Ð¿Ñ\80еÑ\82Ñ\85одног регуларног израза"
 
 #: lib/xalloc-die.c:34
 msgid "memory exhausted"
-msgstr "меморија исцрпљена"
+msgstr "меморија је исцрпљена"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "стдулаз"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "стдизлаз"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "стдгрешка"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "Ð\9dепознаÑ\82а Ñ\81иÑ\81Ñ\82емÑ\81ка Ð³Ñ\80еÑ\88ка"
+msgstr "непознаÑ\82 Ñ\82ок"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "нисам успео да поново отворим „%s“ са режимом %s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "неиÑ\81пÑ\80авна --bytes Ð²Ñ\80едноÑ\81т „%s“"
+msgstr "неиÑ\81пÑ\80аван %s%s Ð°Ñ\80гÑ\83мент „%s“"
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "неисправан суфикс у %s%s аргументу „%s“"
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "%s%s аргумент „%s“ је превелик"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "Запаковао је %s (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+msgstr "Запаковао је %s\n"
 
 #. TRANSLATORS: Translate "(C)" to the copyright symbol
 #. (C-in-a-circle), if this symbol is available in the user's
@@ -302,6 +373,12 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"Дозвола ОЈЛв3+: Гнуова ОЈЛ издање 3 или касније <http://gnu.org/licenses/gpl."
+"html>.\n"
+"Ово је слободан софтвер: слободни сте да га мењате и расподељујете.\n"
+"Нема НИКАКВЕ ГАРАНЦИЈЕ, у обиму допуштеном законом.\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:102
@@ -421,37 +498,39 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"Грешке пријавите на: %s\n"
 
 #: lib/version-etc.c:247
 #, c-format
 msgid "Report %s bugs to: %s\n"
-msgstr ""
+msgstr "Грешке програма „%s“ пријавите на: %s\n"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s матична страница: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s матична страница: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "Општа помоћ користећи ГНУ софтвер: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
-msgstr "Датотеке %s и %s различите\n"
+msgstr "Датотеке „%s“ и „%s“ су различите\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Бинарне датотеке %s и %s различите\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Без новог реда на крају датотеке"
 
@@ -463,75 +542,72 @@ msgstr "Торбјорн Гранлунд"
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
-msgstr ""
+msgstr "Дејвид Мек Кензи"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
-msgstr "Покушајте `%s --help' за подробније објашњење."
+msgstr "Покушајте „%s --help“ за више информација."
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
-msgstr "неисправна --ignore-initial вредност „%s“"
+msgstr "неисправна „--ignore-initial“ вредност „%s“"
 
 #: src/cmp.c:147
 #, c-format
 msgid "options -l and -s are incompatible"
 msgstr "опције -l и -s не иду заједно"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
-msgstr "запиÑ\81иваÑ\9aе Ð½ÐµÑ\83Ñ\81пеÑ\88ано"
+msgstr "запиÑ\81иваÑ\9aе Ð½Ð¸Ñ\98е Ñ\83Ñ\81пело"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандардни излаз"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes  Испиши бајтове који се разликују"
+msgstr ""
+"-b  --print-bytes                   исписује бајтове који се разликују."
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i БРОЈ  --ignore-initial=БРОЈ  Изостави првих БРОЈ бајтова улаза."
+msgstr ""
+"-i БРОЈ  --ignore-initial=БРОЈ      изоставља првих БРОЈ бајтова улаза."
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
 msgstr ""
-"  Ð\98зоÑ\81Ñ\82ави Ð¿Ñ\80виÑ\85 Ð\91РÐ\9eÐ\881 Ð±Ð°Ñ\98Ñ\82ова Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\901 Ð¸ Ð¿Ñ\80виÑ\85 Ð\91РÐ\9eÐ\882 Ð±Ð°Ñ\98Ñ\82ова Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\902."
+"  Ð¸Ð·Ð¾Ñ\81Ñ\82авÑ\99а Ð¿Ñ\80виÑ\85 Ð\91РÐ\9eÐ\881 Ð±Ð°Ñ\98Ñ\82ова Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\951 Ð¸ Ð¿Ñ\80виÑ\85 Ð\91РÐ\9eÐ\882 Ð±Ð°Ñ\98Ñ\82ова Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\952."
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l  --verbose  Испиши редни број и вредност бајтова који се разликују."
+msgstr ""
+"-l  --verbose                       исписује редни број и вредност бајтова "
+"који се разликују."
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n БРОЈ  --bytes=БРОЈ    Пореди до највише БРОЈ бајтова."
+msgstr ""
+"-n ОГРАНИЧЕЊЕ  --bytes=ОГРАНИЧЕЊЕ   пореди до највише ОГРАНИЧЕЊЕ бајтова."
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
-msgstr ""
+msgstr "-s, --quiet, --silent               потискује све обичне излазе"
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                          приказује ову помоћ и излази"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  Извести о верзији."
+msgstr "-v  --version                       исписује податке о издању."
 
 #: src/cmp.c:178
 #, c-format
@@ -540,19 +616,21 @@ msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКА1 [ДАТОТЕК
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
-msgstr "Поређење две датотеке бајт по бајт."
+msgstr "Поредите две датотеке бајт по бајт."
 
 #: src/cmp.c:182
-#, 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 "БРОЈ1 и БРОЈ2 су бројеви бајтова за изостављање у свакој датотеци."
+msgstr ""
+"Изборни БРОЈ1 и БРОЈ2 су бројеви бајтова за изостављање на почетку\n"
+"сваке датотеке (подразумева се нула)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
+"Обавезни аргументи за дуге опције су обавезни и за кратке опције такође.\n"
 
 #: src/cmp.c:191
 msgid ""
@@ -566,373 +644,356 @@ msgstr ""
 "итд. за T, P, E, Z, Y."
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
-msgstr "Читати стандардни улаз ако ДАТОТЕКА недостаје или је „-“."
+msgstr "Чита стандардни улаз ако ДАТОТЕКА недостаје или је „-“."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "неисправна --bytes вредност „%s“"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
 msgstr "недостаје оператор после „%s“"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
 msgstr "вишак оператор „%s“"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
-msgstr "%s %s Ñ\80азлиÑ\87иÑ\82и: бајт %s, ред %s\n"
+msgstr "%s %s Ñ\81е Ñ\80азликÑ\83Ñ\98Ñ\83: бајт %s, ред %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, c-format
 msgid "%s %s differ: byte %s, line %s is %3o %s %3o %s\n"
-msgstr "%s %s Ñ\80азлиÑ\87иÑ\82и: бајт %s, ред %s је %3o %s %3o %s\n"
+msgstr "%s %s Ñ\81е Ñ\80азликÑ\83Ñ\98Ñ\83: бајт %s, ред %s је %3o %s %3o %s\n"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
-msgstr "cmp: EOF на %s\n"
+msgstr "cmp: крај датотеке на %s\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:49
 msgid "Paul Eggert"
-msgstr ""
+msgstr "Пол Егерт"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:50
 msgid "Mike Haertel"
-msgstr ""
+msgstr "Мајк Хартел"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:51
 msgid "David Hayes"
-msgstr ""
+msgstr "Дејвид Хејес"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "Ричард Столман"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
-msgstr ""
+msgstr "Лен Тауер"
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
 msgstr "неисправна дужина склопа „%s“"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "прелом страна није подржан на овом рачунару"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
-msgstr "иÑ\81Ñ\83виÑ\88е Ð¾Ð¿Ñ\86иÑ\98а Ð·Ð° Ð¾Ð·Ð½Ð°ÐºÑ\83 Ð´Ð°Ñ\82оÑ\82ека"
+msgstr "иÑ\81Ñ\83виÑ\88е Ð¾Ð¿Ñ\86иÑ\98а Ð·Ð° Ð¾Ð·Ð½Ð°ÐºÑ\83 Ð´Ð°Ñ\82оÑ\82еке"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
 msgstr "неисправна дужина „%s“"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "сукобљене опције ширине"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
 msgstr "неисправна дужина видокруга „%s“"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
 msgstr "неисправна величина табулатора „%s“"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "сукобљене опције величине табулатора"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
-msgstr "„--from-file“ и „--to-file“ обоје наведени"
+msgstr "„--from-file“ и „--to-file“ су наведени оба"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal  Излаз је обичан „diff“."
+msgstr "    --normal                  исписује обичне разлике (основно)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  Пријави само да ли се датотеке разликују."
+msgstr "-q  --brief                   исписује само када се датотеке разликују"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
-msgstr "-s  --report-identical-files  Ð\9fÑ\80иÑ\98ави ÐºÐ°Ð´Ð° Ñ\81Ñ\83 Ð´Ð²Ðµ Ð´Ð°Ñ\82оÑ\82еке Ð¸Ñ\81Ñ\82е."
+msgstr "-s  --report-identical-files  Ð¸Ð·Ð²ÐµÑ\88Ñ\82ава ÐºÐ°Ð´Ð° Ñ\81Ñ\83 Ð´Ð²Ðµ Ð´Ð°Ñ\82оÑ\82еке Ð¸Ñ\81Ñ\82е"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
+"-c, -C БРОЈ, --context[=БРОЈ] исписује БРОЈ (почетно 3) редова умноженог "
+"склопа"
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
-"-w БРЈ  --width=БРЈ  Ширина излаза је највише БРЈ (почетно 130) колона."
+"-w БРОЈ  --width=БРОЈ         исписује БРОЈ (почетно 3) редова обједињеног "
+"склопа"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed  Излаз је „ed“ спис."
+msgstr "-e  --ed                      исписује ед спис"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  Излаз је RCS облик „diff-а“."
+msgstr "-n  --rcs                     исписује РЦС запис разлика"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
-msgstr ""
+msgstr "-y, --side-by-side            исписује у две колоне"
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
-"-w БРЈ  --width=БРЈ  Ширина излаза је највише БРЈ (почетно 130) колона."
+"-w БРЈ  --width=БРЈ           исписује на највише БРЈ (почетно 130) колона"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column  Испиши само леву колону заједничких редова."
+msgstr ""
+"-l  --left-column             исписује само леву колону заједничких редова"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  Не приказуј заједничке редове."
+msgstr "-s  --suppress-common-lines   не приказује заједничке редове"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
+"-p, --show-c-function         приказује у којој Ц функцији је свака промена"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
+"-F, --show-function-line=РИ   приказује најскорији ред који одговара РИ"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --label ОЗНАКА            користи ОЗНАКУ уместо назива датотеке\n"
+"                                (може да се понавља)"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Развиј табулаторе у размаке за излаз."
+msgstr "-t  --expand-tabs             развија табулаторе у размаке за излаз"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Поравнај табулаторе додајући један табулатор."
+msgstr ""
+"-T  --initial-tab             поравнава табулаторе додајући један табулатор."
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
-msgstr "--tabsize=БРЈ  Величина табулатора је БРЈ (почетно 8) колона."
+msgstr ""
+"--tabsize=БРЈ                 величина табулатора је БРЈ (почетно 8) колона"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
+"--suppress-blank-empty        потискује размак или табулатор пре празних "
+"редова излаза"
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate  Пропусти излаз кроз „pr“ за прелом."
+msgstr "-l  --paginate                пропушта излаз кроз „pr“ за прелом"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  Рекурзивно упореди све пронађене поддиректоријуме."
+msgstr ""
+"-r  --recursive                 дубински упоређује све пронађене "
+"поддиректоријуме"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
-msgstr ""
+msgstr "    --no-dereference            не прати симболичке везе"
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  Недостајуће датотеке се узимају за празне."
+msgstr "-N  --new-file                  сматра празним недостајуће датотеке"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
-"--unidirectional-new-file  Прве недостајуће датотеке се узимају за празне."
+"    --unidirectional-new-file   сматра празним прве недостајуће датотеке"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
-"--ignore-file-name-case  Занемари словну величину поређујући имена датотека."
+"    --ignore-file-name-case     занемарује словну величину поређујући назива "
+"датотека"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
-"--no-ignore-file-name-case  Урачунај словну величину поређујући имена "
-"датотека."
+"    --no-ignore-file-name-case  урачунава словну величину поређујући називе "
+"датотека"
 
-#: src/diff.c:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x ОБР  --exclude=ОБР  Изузми датотеке које поклапа ОБР."
+msgstr "-x, --exclude=ОБР               искључује датотеке које поклапају ОБР"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
-"-X ТЕКА  --exclude-from=ТЕКА  Изузми датотеке које поклапа било који образац "
-"у ТЕКА."
+"-X, --exclude-from=ТЕКА         искључује датотеке које поклапа било који "
+"образац у ТЕКА"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
-"-S ТЕКА  --starting-file=ТЕКА  Почни од ТЕКА при поређењу директоријума."
+"-S, --starting-file=ТЕКА        почиње од ТЕКА при поређењу директоријума"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=ТЕКА1  Упореди ТЕКА1 са свим оперантима. ТЕКА1 може бити "
-"диÑ\80екÑ\82оÑ\80иÑ\98Ñ\83м."
+"    --from-file=ТЕКА1           упоређује ТЕКУ1 са свим оперантима. ТЕКА1 "
+"може Ð±Ð¸Ñ\82и Ð´Ð¸Ñ\80екÑ\82оÑ\80иÑ\98Ñ\83м"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=ТЕКА2  Упореди све операнте са ТЕКА2. ТЕКА2 може бири директоријум."
+"    --to-file=ТЕКА2             упоређује све операнте са ТЕКОМ2. ТЕКА2 може "
+"бити директоријум"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  Занемари словну величину у склопу датотека."
+msgstr ""
+"-i  --ignore-case               занемарује словну величину у склопу датотека"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Занемари промене услед развијања табулатора."
+"-E  --ignore-tab-expansion      занемарује промене услед развијања табулатора"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space  Занемари сву белину."
+msgstr "-Z, --ignore-trailing-space     занемарује размак на крају реда"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Занемари промене због количине белине."
+msgstr ""
+"-b  --ignore-space-change       занемарује промене због количине празног "
+"простора"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space  Занемари сву белину."
+msgstr "-w  --ignore-all-space          занемарује све празне просторе"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 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:897
-#, fuzzy
+#: src/diff.c:926
 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:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  Прихвати све датотеке као текст."
+msgstr "-a  --text                      сматра све датотеке као текст"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Оголи пратеће <CR> на улазу."
+msgstr "    --strip-trailing-cr         огољава пратеће <CR> на улазу"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "--binary  Читај и пиши податке у бинарном режиму."
+msgstr "    --binary                    чита и пише податке у бинарном режиму"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
-msgstr "-D ИМЕ   --ifdef=ИМЕ   Испиши „#ifdef ИМЕ“ разлике спојене датотеке."
+msgstr ""
+"-D, --ifdef=НАЗИВ               исписује стопљену датотеку да прикаже "
+"„#ifdef НАЗИВ“ разлике"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=ГОБЛ  Слично, али обликуј GTYPE улазне групе са ГОБЛ."
+msgstr "    --GTYPE-group-format=ГОБЛ   обликује GTYPE улазне групе са ГОБЛ"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=РОБЛ  Слично, али обликуј све улазне редове са РОБЛ."
+msgstr "    --line-format=РОБЛ          обликује све улазне редове са РОБЛ"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=РОБЛ  Слично, али обликуј LTYPE улазне редове са РОБЛ."
+msgstr "    --LTYPE-line-format=РОБЛ    обликује LTYPE улазне редове са РОБЛ"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
+"  Ове опције записа обезбеђује фино подешено управљање преко излаза\n"
+"    различника, генерализујући -D/--ifdef."
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 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:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -947,33 +1008,32 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  ГОБЛ може садржати:\n"
-"    %<  Ñ\80едове Ð¸Ð· Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\901\n"
-"    %>  Ñ\80едове Ð¸Ð· Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\902\n"
-"    %=  Ñ\80едове Ð·Ð°Ñ\98едниÑ\87ке Ñ\83 Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\901 Ð¸ Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\902\n"
+"  ГОБЛ (само) може садржати:\n"
+"    %<  Ñ\80едове Ð¸Ð· Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\951\n"
+"    %>  Ñ\80едове Ð¸Ð· Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\952\n"
+"    %=  Ñ\80едове Ð·Ð°Ñ\98едниÑ\87ке Ñ\83 Ð\94Ð\90ТÐ\9eТÐ\95ЦÐ\981 Ð¸ Ð\94Ð\90ТÐ\9eТÐ\95ЦÐ\982\n"
 "    %[-][ШИРН][.[ТАЧН]]{doxX}СЛОВО  printf-стил за СЛОВО\n"
 "      СЛОВО за нову групу, мала слова за стару групу:\n"
 "        F  број првог реда\n"
-"        L  Ð±Ñ\80оÑ\98 Ð·Ð°дњег реда\n"
+"        L  Ð±Ñ\80оÑ\98 Ð¿Ð¾Ñ\81ледњег реда\n"
 "        N  број редова = L-F+1\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  ако је А исто као Б онда Т супротно Е"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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 ""
-"  РОБЛ може садржати:\n"
+"  РОБЛ (само) може садржати:\n"
 "    %L  садржај реда\n"
 "    %l  садржај реда, изузев пратећих знакова за нови ред\n"
 "    %[-][ШИРН][.[ТАЧН]]{doxX}n  printf-стил за улазни број реда"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -983,113 +1043,132 @@ msgid ""
 msgstr ""
 "  Било ГОБЛ или РОБЛ могу садржати:\n"
 "    %%  %\n"
-"    %c'З'  само један знак „З“\n"
-"    %c'\\OOO'  знак са окталним кодом OOO"
+"    %c'З'     само један знак „З“\n"
+"    %c'\\OOO'  знак са окталним кодом OOO\n"
+"    З         знак З (други знаци представљају сами себе)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Потруди се да нађеш мањи скуп промена."
+msgstr "-d  --minimal            труди се да нађе мањи скуп промена"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
-msgstr "--horizon-lines=БРЈ  Чувај БРЈ редова заједничког префикса и суфикса."
+msgstr ""
+"    --horizon-lines=БРЈ  чува БРЈ редова заједничког префикса и суфикса"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  За велике датотеке за много раштрканих малих измена."
+"    --speed-large-files  за велике датотеке са много раштрканих малих измена"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  исписује обичне разлике (основно)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               приказује ову помоћ и излази"
+
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  Извести о верзији."
+msgstr "-v  --version            исписује податке о издању"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ДАТОТЕКЕ су „ТЕКА1 ТЕКА2“ или „ДИР1 ДИР2“ или „ДИР ТЕКА...“ или „ТЕКА... "
 "ДИР“."
 
-#: src/diff.c:942
-#, fuzzy
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr ""
-"Нема ограничења за ДАТОТЕКЕ ако је „--from-file“ или „--to-file“ задато."
+"Нема ограничења за ДАТОТЕКЕ ако је задато „--from-file“ или „--to-file“."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "Ако је ДАТОТЕКА „-“, читај стандардни улаз."
+msgstr "Ако је ДАТОТЕКА „-“, чита стандардни улаз."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКЕ\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "Поређење датотека ред по ред."
+msgstr "Поредите ДАТОТЕКЕ ред по ред."
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
-msgstr "Ñ\81Ñ\83коб Ð·Ð±Ð¾Ð³ Ð²Ñ\80едноÑ\81Ñ\82и â\80\9e%sâ\80\9c Ð¾Ð¿Ñ\86иÑ\98е â\80\9e%sâ\80\9c"
+msgstr "сукоб вредности „%s“ опције „%s“"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "сукобљене опције излазног стила"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "неисправна дужина „%s“"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Само у %s: %s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
-msgstr "не Ð¼Ð¾Ð¶Ðµ поредити „-“ са директоријумом"
+msgstr "не Ð¼Ð¾Ð³Ñ\83 поредити „-“ са директоријумом"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "опција „-D“ није подржана за директоријуме"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Заједнички поддиректоријуми: %s и %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Датотека „%s“ је „%s“ док је датотека „%s“ „%s“\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "Ð\94аÑ\82оÑ\82еке %s Ð¸ %s различите\n"
+msgstr "СимболиÑ\87ке Ð²ÐµÐ·Ðµ â\80\9e%sâ\80\9c Ð¸ â\80\9e%sâ\80\9c Ñ\81Ñ\83 различите\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
-msgstr "Ð\94аÑ\82оÑ\82еке â\80\9e%sâ\80\9c Ð¸ â\80\9e%sâ\80\9c Ñ\81е Ð¿Ð¾Ð´Ñ\83даÑ\80аÑ\98Ñ\83\n"
+msgstr "Ð\94аÑ\82оÑ\82еке â\80\9e%sâ\80\9c Ð¸ â\80\9e%sâ\80\9c Ñ\81е Ð¸Ñ\81Ñ\82овеÑ\82не\n"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff3.c:41
 msgid "Randy Smith"
-msgstr ""
+msgstr "Ренди Смит"
 
 #: src/diff3.c:313
 #, c-format
@@ -1097,95 +1176,92 @@ msgid "incompatible options"
 msgstr "несагласне опције"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "„-“ наведено за више од једне датотеке"
+msgstr "„-“ је наведено за више од једне улазне датотеке"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
-msgstr "неуспело читање"
+msgstr "читање није успело"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all  Испиши све промене, означи заградама сукобе."
+msgstr ""
+"-A  --show-all              исписује све промене, означавајући сукобе "
+"заградама"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed  Испиши неспојене промене између СТАРАТЕКА и ТВОЈАТЕКА у МОЈАТЕКА."
+"-e  --ed                    исписује неспојене промене између СТАРАТЕКА и "
+"ТВОЈАТЕКА у МОЈАТЕКА"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E  --show-overlap  Испиши неспојене промене, означи заградама сукобе."
+msgstr "-E  --show-overlap          као -e, означавајући сукобе заградама"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only  Испиши неспојене непреклопљене промене."
+msgstr ""
+"-3  --easy-only             као -e, али обједињује непреклопљене промене"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only  Испиши преклопљене промене."
+msgstr "-x, --overlap-only          као -e, али обједињује преклопљене промене"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          као -x, означавајући сукобе заградама"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  Придодај „w“ и „q“ наредбе ed списима."
+msgstr "-i                          придодаје „w“ и „q“ наредбе ед списима"
 
 #: src/diff3.c:438
 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:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  Прихвати све датотеке као текст."
+msgstr "-a  --text                  сматра све датотеке као текст"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Оголи пратеће <CR> на улазу."
+msgstr "    --strip-trailing-cr     огољава пратеће <CR> на улазу"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  Поравнај табулаторе додајући један табулатор."
+msgstr ""
+"-T  --initial-tab           поравнава табулаторе додајући један табулатор"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=ПРОГРАМ  Користи ПРОГРАМ за поређење датотека."
+msgstr "    --diff-program=ПРОГРАМ  користи ПРОГРАМ за поређење датотека"
 
 #: src/diff3.c:445
 msgid ""
 "-L, --label=LABEL           use LABEL instead of file name\n"
 "                                (can be repeated up to three times)"
 msgstr ""
+"-L, --label=ОЗНАКА          користи ОЗНАКУ уместо назива датотеке\n"
+"                                (може да се понови до три пута)"
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                  приказује ову помоћ и излази"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  Извести о верзији."
+msgstr "-v, --version               исписује податке о издању и излази"
 
 #: src/diff3.c:458
 #, c-format
@@ -1194,7 +1270,7 @@ msgstr "Употреба: %s [ОПЦИЈА]... МОЈАТЕКА СТАРАТЕК
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
-msgstr "Поређење три датотеке ред по ред."
+msgstr "Поредите три датотеке ред по ред."
 
 #: src/diff3.c:470
 msgid ""
@@ -1209,6 +1285,15 @@ msgid ""
 "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, -X“ (и одговарајуће дуге) доводе до тога да ед спис\n"
+"буде излаз уместо подразумеваног.\n"
+"\n"
+"На крају, опција „-m“ (--merge) доводи до тога да „diff3“ изнутра стопи\n"
+"и да испише тренутно стопљену датотеку.  За необичан улаз, ово је много\n"
+"рогпадније него употреба еда.\n"
 
 #: src/diff3.c:482
 msgid "Exit status is 0 if successful, 1 if conflicts, 2 if trouble."
@@ -1216,187 +1301,171 @@ msgstr "Излазно стање је 0 за успех, 1 за сукобе, 2
 
 #: src/diff3.c:675
 msgid "internal error: screwup in format of diff blocks"
-msgstr "интерна грешка: зез у формату „diff“ блокова"
+msgstr "унутрашња грешка: зез у запису блокова разлика"
 
 #: src/diff3.c:968
 #, c-format
 msgid "%s: diff failed: "
-msgstr "%s: diff неуспешан: "
+msgstr "%s: разлике нису успеле: "
 
 #: src/diff3.c:990
 msgid "internal error: invalid diff type in process_diff"
-msgstr "интерна грешка: неисправна „diff“ врста у „process_diff“"
+msgstr "унутрашња грешка: неисправна врста разлика у „process_diff“"
 
 #: src/diff3.c:1015
 msgid "invalid diff format; invalid change separator"
-msgstr "неисправан diff облик; неважећи раздвојник измена"
+msgstr "неисправан запис разлика; неисправан раздвојник измена"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
-msgstr "неисправан diff облик; непотпун задњи ред"
+msgstr "неисправан облик разлика; непотпун задњи ред"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
-msgstr "помоÑ\9bни Ð¿Ñ\80огÑ\80ам â\80\9e%sâ\80\9c Ð½Ð¸Ñ\98е Ð¼Ð¾Ð³Ð°Ð¾ бити покренут"
+msgstr "помоÑ\9bни Ð¿Ñ\80огÑ\80ам â\80\9e%sâ\80\9c Ð½Ðµ Ð¼Ð¾Ð¶Ðµ бити покренут"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
-msgstr "неисправан diff облик; нетачни водећи знакови реда"
+msgstr "неисправан запис разлика; нетачни водећи знакови реда"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
-msgstr "Ñ\83нÑ\83Ñ\82Ñ\80аÑ\88Ñ\9aа Ð³Ñ\80еÑ\88ка: Ð½ÐµÐ¸Ñ\81пÑ\80аван diff Ñ\82ип Ð¿Ñ\80оÑ\81леÑ\92ен излазу"
+msgstr "Ñ\83нÑ\83Ñ\82Ñ\80аÑ\88Ñ\9aа Ð³Ñ\80еÑ\88ка: Ð½ÐµÐ¸Ñ\81пÑ\80авна Ð²Ñ\80Ñ\81Ñ\82а Ñ\80азлика Ð¿Ñ\80оÑ\81леÑ\92ена излазу"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "улазна датотека се скупила"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "не Ð¼Ð¾Ð¶Ðµ Ð¿Ð¾Ñ\80едиÑ\82и Ð¸Ð¼ÐµÐ½Ð° датотека „%s“ и „%s“"
+msgstr "не Ð¼Ð¾Ð³Ñ\83 Ð¿Ð¾Ñ\80едиÑ\82и Ð½Ð°Ð·Ð¸Ð²Ðµ датотека „%s“ и „%s“"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s: дубинска петља кроз директоријуме"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
 msgid "Thomas Lord"
-msgstr ""
+msgstr "Томас Лорд"
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr "-o ТЕКА  --output=ТЕКА  Интерактивни рад, излаз се шаље у ТЕКА."
+msgstr "-o, --output=ТЕКА            ради међудејствено, шаљући излаз у ТЕКА"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  Сматрај велика и мала слова истим."
+msgstr "-i  --ignore-case            сматра истим велика и мала слова"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
 msgstr ""
-"-E  --ignore-tab-expansion  Занемари промене услед развијања табулатора."
+"-E  --ignore-tab-expansion   занемарује промене услед развијања табулатора"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space  Занемари сву белину."
+msgstr "-Z, --ignore-trailing-space  занемарује размак на крају реда"
 
 #: src/sdiff.c:178
-#, fuzzy
 msgid ""
 "-b, --ignore-space-change    ignore changes in the amount of white space"
-msgstr "-b  --ignore-space-change  Занемари промене због количине белине."
+msgstr ""
+"-b  --ignore-space-change    занемарује промене због количине празног "
+"простора"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space  Занемари све размаке."
+msgstr "-W  --ignore-all-space       занемарује све размаке"
 
 #: src/sdiff.c:180
-#, fuzzy
 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:181
-#, fuzzy
 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:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  Оголи пратеће <CR> на улазу."
+msgstr "    --strip-trailing-cr      огољава пратеће <CR> на улазу"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  Прихвати све датотеке као текст."
+msgstr "-a  --text                   сматра све датотеке као текст"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
 msgstr ""
-"-w БРЈ  --width=БРЈ  Ширина излаза је највише БРЈ (почетно 130) колона."
+"-w, --width=БРОЈ             исписује на највише БРОЈ (почетно 130) колона"
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l  --left-column  Испиши само леву колону заједничких редова."
+msgstr ""
+"-l  --left-column            исписује само леву колону заједничких редова"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  Ð\9dе Ð¿Ñ\80иказÑ\83Ñ\98 Ð·Ð°Ñ\98едниÑ\87ке Ñ\80едове."
+msgstr "-s  --suppress-common-lines  Ð½Ðµ Ð¿Ñ\80иказÑ\83Ñ\98е Ð·Ð°Ñ\98едниÑ\87ке Ñ\80едове"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  Развиј табулаторе у размаке за излаз."
+msgstr "-t  --expand-tabs            развија табулаторе у размаке за излаз"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
-msgstr "--tabsize=БРЈ  Величина табулатора је БРЈ (почетно 8) колона."
+msgstr ""
+"    --tabsize=БРОЈ           величина табулатора је БРОЈ (почетно 8) колона"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  Потруди се да нађеш мањи скуп промена."
+msgstr "-d  --minimal                труди се да нађе мањи скуп промена"
 
 #: src/sdiff.c:193
-#, fuzzy
 msgid ""
 "-H, --speed-large-files      assume large files, many scattered small changes"
 msgstr ""
-"-H  --speed-large-files  За велике датотеке за много раштрканих малих измена."
+"-H  --speed-large-files      за велике датотеке са много раштрканих малих "
+"измена"
 
 #: src/sdiff.c:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=ПРОГРАМ  Користи ПРОГРАМ за поређење датотека."
+msgstr "    --diff-program=ПРОГРАМ   користи ПРОГРАМ за поређење датотека"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   приказује ову помоћ и излази"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  Извести о верзији."
+msgstr "-v  --version                исписује податке о издању"
 
 #: src/sdiff.c:206
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
-msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКА1 ДАТОТЕКА22\n"
+msgstr "Употреба: %s [ОПЦИЈА]... ДАТОТЕКА1 ДАТОТЕКА2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
-msgstr "УпоÑ\80едно Ñ\81Ñ\82апаÑ\9aе Ñ\80азлика Ð´Ð°Ñ\82оÑ\82ека"
+msgstr "УпоÑ\80едно Ñ\81Ñ\82апаÑ\9aе Ñ\80азлика Ð¸Ð·Ð¼ÐµÑ\92Ñ\83 Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\951 Ð¸ Ð\94Ð\90ТÐ\9eТÐ\95Ð\9aÐ\952."
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "не Ð¼Ð¾Ð¶Ðµ интерактивно уклопити стандардни улаз"
+msgstr "не Ð¼Ð¾Ð³Ñ\83 интерактивно уклопити стандардни улаз"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
 msgstr "обе датотеке за поређење су директоријуми"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1409,124 +1478,23 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\tУреди па користи обе верзије, свака украшена заглављем.\n"
-"eb:\tУреди па користи обе верзије.\n"
-"el:\tУреди па користи верзију лево.\n"
-"er:\tУреди па користи верзију десно.\n"
-"e:\tУређуј нову верзију.\n"
-"l:\tКористи верзију лево.\n"
-"r:\tКористи верзију десно.\n"
-"s:\tУметни заједничке редове тихо.\n"
-"v:\tУметни заједничке редове бучно.\n"
-"q:\tЗаврши.\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: неправилна опција -- %c\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 ""
-#~ "Ово је слободан софтвер; видети изворни кôд за услове умножавања. Без "
-#~ "ИКАКВЕ\n"
-#~ "гаранције; чак ни за ТРЖИШНОСТ или ПРИКЛАДНОСТ ОДРЕЂЕНОЈ СВРСИ.\n"
-
-#~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
-#~ msgstr "-i БРОЈ1:БРОЈ2  --ignore-initial=БРОЈ1:БРОЈ2"
-
-#~ msgid "-s  --quiet  --silent  Output nothing; yield exit status only."
-#~ msgstr "-s  --quiet  --silent  Без исписа; пријави само излазно стање."
-
-#~ msgid "--help  Output this help."
-#~ msgstr "--help  Испиши ово објашњење."
-
-#~ msgid "Report bugs to <bug-gnu-utils@gnu.org>."
-#~ msgstr ""
-#~ "Пријава грешака на адресу <bug-gnu-utils@gnu.org>.\n"
-#~ "Поруке у вези превода слати на <gnu@prevod.org>."
-
-#~ msgid "`-%ld' option is obsolete; use `-%c %ld'"
-#~ msgstr "опција „-%ld“ је застарела; користити „-%c %ld“"
-
-#~ msgid "`-%ld' option is obsolete; omit it"
-#~ msgstr "опција „-%ld“ је застарела; изоставите је"
-
-#~ 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 БРЈ  --context[=БРЈ]  Испиши БРЈ (почетно 3) редова копираног "
-#~ "склопа.\n"
-#~ "-u  -U БРЈ  --unified[=БРЈ]  Испиши БРЈ (почетно 3) редова обједињеног "
-#~ "склопа.\n"
-#~ "  --label ОЗНАКА  Користи ОЗНАКА уместо имена датотеке.\n"
-#~ "  -p  --show-c-function  Прикажи Це функцију у којој је промена.\n"
-#~ "  -F РИ  --show-function-line=РИ  Прикажи најскорији ред који РИ поклапа."
-
-#~ 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  Испис у две колоне.\n"
-#~ "  -W БРЈ  --width=БРЈ  Испис највише БРЈ (почетно 130) знакова.\n"
-#~ "  --left-column  Испис само леве колоне код заједничких редова.\n"
-#~ "  --suppress-common-lines  Не исписуј заједничке редове."
-
-#~ msgid ""
-#~ "--speed-large-files  Assume large files and many scattered small changes."
-#~ msgstr ""
-#~ "--speed-large-files  За велике датотеке са много раштрканих малих промена."
-
-#~ msgid "-X  Output overlapping changes, bracketing them."
-#~ msgstr "-X  Испиши и означи заградама преклопљене промене."
-
-#~ msgid "-m  --merge  Output merged file instead of ed script (default -A)."
-#~ msgstr "-m  --merge  Испиши спојену датотеку уместо ed списа (почетно -A)."
-
-#~ msgid "-L LABEL  --label=LABEL  Use LABEL instead of file name."
-#~ msgstr "-L ОЗНКА  --label=ОЗНКА  Користи ОЗНКА уместо имена датотеке."
-
-#~ msgid "subsidiary program `%s' not found"
-#~ msgstr "помоћни програм „%s“ није нађен"
-
-#~ msgid "subsidiary program `%s' failed"
-#~ msgstr "помоћни програм „%s“ неуспешан"
-
-#~ msgid "subsidiary program `%s' failed (exit status %d)"
-#~ msgstr "помоћни програм „%s“ неуспешан (излазно стање %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 ""
-#~ "Овај програм долази БЕЗ ИКАКВЕ ГАРАНЦИЈЕ, у обиму дозвољеном законом.\n"
-#~ "Можете расподељивати копије овог програма под условима ГНУ Опште јавне "
-#~ "лиценце.\n"
-#~ "За подробније објашњење ових ствари погледајте датотеку под називом "
-#~ "„COPYING“."
-
-#~ msgid "Written by Torbjorn Granlund and David MacKenzie."
-#~ msgstr ""
-#~ "Написали Торбјорн Гранлунд (Torbjörn Granlund) и Дејвид Мекензи (David "
-#~ "MacKenzie)"
-
-#~ msgid ""
-#~ "Written by Paul Eggert, Mike Haertel, David Hayes,\n"
-#~ "Richard Stallman, and Len Tower."
-#~ msgstr ""
-#~ "Написали Пол Егерт (Paul Eggert), Мајк Хертел (Mike Haertel), Дејвид Хејз "
-#~ "(David Hayes), Ричард Сталман (Richard Stallman) и Лен Тауер (Len Tower)"
-
-#~ msgid "subsidiary program `%s' not executable"
-#~ msgstr "помоћни програм „%s“ није извршан"
+"ed:         Уређује па користи оба издања, свако украшено заглављем.\n"
+"eb:\t    Уређије па користи оба издања.\n"
+"el или e1:  Уређује па користи издање лево.\n"
+"er или e2:  Уређује па користи издање десно.\n"
+"e:          Уређује ново издање.\n"
+"l:          Користи издање лево.\n"
+"r:          Користи издање десно.\n"
+"s:          Умеће заједничке редове тихо.\n"
+"v:          Умеће заједничке редове бучно.\n"
+"q:          Завршава.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: непозната опција „--%s“\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 3775d92..6d6356d 100644 (file)
Binary files a/po/sv.gmo and b/po/sv.gmo differ
index 143f84f..d9fe58f 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-10-31 21:15+0100\n"
 "Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -18,6 +18,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "ogiltigt argument till %s%s ”%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "ogiltigt argument till %s%s ”%s”"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "programfel"
@@ -26,113 +41,166 @@ msgstr "programfel"
 msgid "stack overflow"
 msgstr "stackspill"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Okänt systemfel"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "en tom normal fil"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "en normal fil"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "en katalog"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "en blockspecialfil"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "en teckenspecialfil"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "en fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "en symbolisk länk"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "ett uttag (socket)"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "en meddelandekö"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "en semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "ett objekt av delat minne"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "ett objekt av typat minne"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "en blockspecialfil"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "en teckenspecialfil"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "en fifo"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "en blockspecialfil"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "en teckenspecialfil"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "en konstig fil"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "en blockspecialfil"
+
+#: 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 "ett uttag (socket)"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "en konstig fil"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: flaggan \"%s\" är tvetydig; möjligheter:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"--%s\" tar inget argument\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: flaggan \"%s\" behöver ett argument\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: okänd flagga \"--%s\"\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: okänd flagga \"%c%s\"\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: ogiltig flagga -- \"%c\"\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: flaggan behöver ett argument -- \"%c\"\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: flaggan \"-W %s\" behöver ett argument\n"
@@ -158,83 +226,84 @@ msgstr "%s: flaggan \"-W %s\" behöver ett argument\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "”"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Lyckades"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Ingen match"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Ogiltigt reguljäruttryck"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Ogiltigt sorteringstecken"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Ogiltigt namn på teckenklass"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Avslutande omvänt snedstreck"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Ogiltig bakåtreferens"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Oparad [ eller [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Oparad ( eller \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Oparad \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Ogiltigt innehåll i \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Ogiltigt intervallslut"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Minnet slut"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Föregående reguljäruttryck ogiltigt"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Förtida slut på reguljäruttryck"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "För stort reguljäruttryck"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Oparad ) eller \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Inget föregående reguljäruttryck"
 
@@ -453,17 +522,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Allmän hjälp med att använda GNU-program: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Filerna %s och %s skiljer\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "De binära filerna %s och %s skiljer\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Ingen nyrad vid filslut"
 
@@ -477,7 +546,7 @@ msgstr "Torbjörn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Försök med ”%s --help” för mer information."
@@ -492,14 +561,12 @@ msgstr "ogiltigt --ignore-initial-värde ”%s”"
 msgid "options -l and -s are incompatible"
 msgstr "flaggorna -l och -s är motstridiga"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "skrivning misslyckades"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standard ut"
 
@@ -561,7 +628,7 @@ msgstr ""
 "De valfria HOPP1 och HOPP2 anger antalet antalet byte att hoppa över\n"
 "i början varje fil (noll som standard)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -582,7 +649,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Om FIL är ”-” eller utelämnats, läs standard in."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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."
 
@@ -591,27 +658,27 @@ msgstr "Slutsstatus är 0 om indata är lika, 1 om olika, 2 vid problem."
 msgid "invalid --bytes value '%s'"
 msgstr "ogiltigt --bytes-värde ”%s”"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "saknad operand efter ”%s”"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "extra operand ”%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s skiljer: byte %s, rad %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: EOF i %s\n"
@@ -641,136 +708,137 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "ogiltig omgivningslängd ”%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sidvisning stödjs ej på denna värd"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "för många etikettflaggor"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "ogiltig bredd ”%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "konflikt mellan breddflaggor"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "ogiltig horisontlängd ”%s”"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "ogiltigt tabulatorsteg ”%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "konflikt mellan tabulatorflaggor"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "både --from-file och --to-file angavs"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  skriv ut en normal diff (standard)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   rapportera endast när filer skiljer sig"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      skriv ut ett ed-skript"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     skriv ut skillnader i RCS-format"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            skriv ut i två kolumner"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   skriv inte ut gemensamma rader"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr "-F, --show-function-line=RU   visa dn senaste raden som matchar RU"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETIKETT           använd ETIKETT istället för filnamn\n"
 "                                (kan upprepas)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t, --expand-tabs             expandera tabulatorer till blanksteg i utdata"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
@@ -778,54 +846,54 @@ msgstr ""
 "tomma\n"
 "                                utrader"
 
-#: src/diff.c:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l, --paginate                skicka utdata till ”pr” för paginering"
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 jämför underkataloger som hittas rekursivt"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            följ inte symboliska länkar"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  behandla saknade filer som tomma"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   behandla saknade förstafiler som tomma"
 
-#: src/diff.c:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x, --exclude=MNS               ta inte med filer som matchar MNS"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -833,7 +901,7 @@ msgstr ""
 "    --from-file=FIL1            jämför FIL1 med alla operander;\n"
 "                                  FIL1 kan vara en katalog"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -841,79 +909,79 @@ msgstr ""
 "    --to-file=FIL2              jämför alla operander med FIL2;\n"
 "                                  FIL2 kan vara en katalog"
 
-#: src/diff.c:891
+#: src/diff.c:920
 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:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          bortse från alla blanktecken"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      behandla alla filer som text"
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         tag bort avslutande vagnreturer i indata"
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    läs och skriv data binärt"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr "    --GTYP-group-format=GFMT    formatera GTYP-ingrupper med GFMT"
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "    --line-format=RFMT          formatera alla inrader med RFMT"
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr "    --RTYP-line-format=RFMT     formatera RTYP-inrader med RFMT"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -921,12 +989,12 @@ msgstr ""
 "  Dessa formatflagger gör det möjligt att finjustera utskriften från\n"
 "    diff, generaliserande -D/--ifdef."
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYP är ”old”, ”new” eller ”unchanged”.  GTYP är LTYP eller ”changed”."
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -954,7 +1022,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  om A är lika med B då T annars E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -966,7 +1034,7 @@ msgstr ""
 "    %l  radinnehåll exklusive avslutande nyrad\n"
 "    %[-][BREDD][.[PREC]]{doxX}n  printf-stil spec. för inradnummer"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -980,95 +1048,121 @@ msgstr ""
 "    %c'\\OOO'  tecknet med oktalkod OOO\n"
 "    T    tecknet T (övriga tecken representerar sig själva)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  skriv ut en normal diff (standard)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               visa denna hjälp och avsluta"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            visa versionsinformation och avsluta"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Om en FIL är ”-”, läs standard in."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Användning: %s [FLAGGA]... FILER\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Jämför FILER rad för rad."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "motstridigt %s-flaggsvärde ”%s”"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "motstridig utmatningsstilsflagga"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "ogiltig bredd ”%s”"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Endast i %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "kan inte jämföra ”-” med en katalog"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D flaggan stödjs ej för kataloger"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Lika underkataloger: %s och %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "De symboliska länkarna %s och %s skiljer\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Filerna %s och %s är lika\n"
@@ -1087,7 +1181,7 @@ msgstr "oförenliga flaggor"
 msgid "'-' specified for more than one input file"
 msgstr "”-” angivet för mer än en infil"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "läsning misslyckades"
@@ -1232,33 +1326,33 @@ msgstr "internt fel: ogiltig diff-typ i process_diff"
 msgid "invalid diff format; invalid change separator"
 msgstr "ogiltigt diff-format; ogiltig ändringsseparator"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "ogiltigt diff-format; ofullständig sista rad"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "underprogram ”%s” kunde inte startas"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "ogiltigt diff-format; felaktiga starttecken på rad"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "internt fel: ogiltig diff-typ utskickad"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "infilen krympte"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "kan inte jämföra filnamnen ”%s” och ”%s”"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: rekursiv katalogslinga"
@@ -1409,3 +1503,13 @@ msgstr ""
 "s:\tInkludera tyst gemensamma rader.\n"
 "v:\tInkludera och tillkännage gemensamma rader.\n"
 "q:\tAvsluta.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: okänd flagga \"--%s\"\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index d5ed92d..7df74ab 100644 (file)
Binary files a/po/tr.gmo and b/po/tr.gmo differ
index 44e3e59..e3b6016 100644 (file)
--- a/po/tr.po
+++ b/po/tr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2013-03-09 15:49+0100\n"
 "Last-Translator: Volkan Gezer <vlkngzr@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -20,6 +20,21 @@ msgstr ""
 "X-Generator: Lokalize 1.5\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "Geçersiz %s%s argümanı '%s'"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "Geçersiz %s%s argümanı '%s'"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "yazılım hatası"
@@ -28,113 +43,166 @@ msgstr "yazılım hatası"
 msgid "stack overflow"
 msgstr "yığıt taşması"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Bilinmeyen sistem hatası"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "normal boş dosya"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "normal dosya"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "dizin"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "blok özel dosyası"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "karakter özel dosyası"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "sembolik bağ"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "soket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "ileti kuyruğu"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semafor"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "ortak bellek nesnesi"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "türlenmiş bellek nesnesi"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "blok özel dosyası"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "karakter özel dosyası"
+
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "blok özel dosyası"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "karakter özel dosyası"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "dosya garip"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "blok özel dosyası"
+
+#: 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 "soket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "dosya garip"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: `%s' seçeneği belirsiz; kullanılabilecekler:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: `-W %s' seçeneği belirsiz\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: `--%s' seçeneği argümansız kullanılır\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: seçenek `%c%s' argümansız kullanılır\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: `--%s' seçeneği bilinmiyor\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: `%c%s' seçeneği bilinmiyor\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: geçersiz seçenek -- %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: seçenek bir argümanla kullanılır -- %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: `-W %s' seçeneği belirsiz\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: `-W %s' seçeneği argümansız kullanılır\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n"
@@ -160,83 +228,84 @@ msgstr "%s: `%s' seçeneği bir argümanla kullanılır\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Başarılı"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Eşleme yok"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Düzenli ifade geçersiz"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Harmanlama karakteri geçersiz"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Karakter sınıf ismi geçersiz"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "İzleyen ters kesme"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Geriye başvuru geçersiz"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "[ ya da [^ eşleşmiyor"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "( ya da \\( eşleşmiyor"
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "\\{ eşleşmiyor"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} içeriği geçersiz"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Kapsam sonu geçersiz"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Bellek tükendi"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Önceki düzenli ifade geçersiz"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Düzenli ifadenin sonu eksik kalmış"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Düzenli ifade çok büyük"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr ") ya da  \\) eşleşmiyor"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Daha önce düzenli ifade yok"
 
@@ -481,17 +550,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "GNU yazılımı kullanımı hakkında genel yardım: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "%s ve %s dosyaları birbirinden farklı\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "İkili %s ve %s birbirinden farklı\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Dosya sonunda yenisatır yok."
 
@@ -505,7 +574,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Daha fazla bilgi için `%s --help' komutunu deneyin."
@@ -520,14 +589,12 @@ msgstr "geçersiz --ignore-initial değeri '%s'"
 msgid "options -l and -s are incompatible"
 msgstr "-l ve -s seçenekleri beraber kullanılamaz"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "yazma başarısız oldu"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "standart çıktı"
 
@@ -588,7 +655,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -609,7 +676,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "Eğer DOSYA `-' ise veya yoksa, standart girdi okunur."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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."
 
@@ -618,27 +685,27 @@ msgstr "Girdiler aynı ise çıkış durumu 0, farklı ise 1, sorun var ise 2 ol
 msgid "invalid --bytes value '%s'"
 msgstr "geçersiz --bytes değeri `%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "`%s'den sonra işlenen eksik"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "fazla işlenen `%s'"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s farklı: bayt %s, satır %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: %s'da EOF (dosyasonu)\n"
@@ -668,200 +735,201 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "`%s' bağlam uzunluğu geçersiz"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "sayfalama bu makina üzerinde desteklenmiyor"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "çok fazla dosya etiket seçeneği"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "geçersiz genişlik `%s'"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "çelişkili genişlik seçenekleri"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "geçersiz ufuk uzunluğu `%s'"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "geçersiz sekme genişliği `%s'"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "çelişkili genişlik seçenekleri"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "hem --from-file hem de --to-file belirtilmiş"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "    --normal                  normal bir diff çıktılar (öntanımlı)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   yalnızca dosyalar farklı ise göster"
 
-#: src/diff.c:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      bir ed betiği çıktılar"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n, --rcs                     RCS biçeminde diff çıktılar"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            iki sütunda çıktı göster"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   ortak satırlayı gösterme"
 
-#: src/diff.c:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label ETİKET             dosya adı yerine ETİKET kullan\n"
 "                                (tekrarlanabilir)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t, --expand-tabs             çıktıda sekmeleri boşluk haline getir"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=SAYI             sekmeler SAYI sütun genişliğine (öntanımlı 8) "
 "ayarlanır."
 
-#: src/diff.c:874
+#: src/diff.c:903
 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:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l, --paginate                çıktıyı 'pr' komutundan geçirerek sayfala"
 
-#: src/diff.c:877
+#: src/diff.c:906
 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:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            sembolik bağlantıları takip etme"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  var olmayan dosyaları boş varsay"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "    --unidirectional-new-file   var olmayan birinci dosyayı boş varsay"
 
-#: src/diff.c:881
+#: src/diff.c:910
 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:882
+#: src/diff.c:911
 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:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x, --exclude=KALIP               KALIP'a uyan dosyaları işleme dahil etme"
 
-#: src/diff.c:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -869,7 +937,7 @@ msgstr ""
 "    --from-file=DOSYA1           DOSYA1'i bütün işlenenlerle karşılaştır;\n"
 "                                  DOSYA1 bir dizin olabilir"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -877,82 +945,82 @@ msgstr ""
 "    --to-file=DOSYA2           DOSYA2'yi bütün işlenenlerle karşılaştır;\n"
 "                                  DOSYA2 bir dizin olabilir"
 
-#: src/diff.c:891
+#: src/diff.c:920
 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:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w, --ignore-all-space          bütün boşlukları yoksay"
 
-#: src/diff.c:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      bütün dosyaları metin olarak işle"
 
-#: src/diff.c:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr "    --binary                    veriyi ikilik kipte yaz ve oku"
 
-#: src/diff.c:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -961,13 +1029,13 @@ msgstr ""
 "grained control over the output\n"
 "    tanecik denetimi sağlar. -D/--ifdef genelleştirmesi yapar."
 
-#: src/diff.c:911
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -996,7 +1064,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  eğer A eşittir B ise T değilse E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -1009,7 +1077,7 @@ msgstr ""
 "    %[-][GENİŞLİK][.[KESİNLİK]]{doxX}n  girdi satır sayısı için printf tarzı "
 "biçem"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1023,95 +1091,121 @@ msgstr ""
 "    %c'\\OOO'  Sekizlik kodu OOO olan karakter\n"
 "    C    C karakteri (diğer karakterler kendilerini temsil eder)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  normal bir diff çıktılar (öntanımlı)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help                 bu yardım metnini göster ve çık"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            sürüm bilgisini göster ve çık"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "DOSYAlar: `DOSYA1 DOSYA2' veya `DİZİN1 DİZİN2' veya `DİZİN DOSYA...' veya "
 "`DOSYA...DİZİN' olabilir."
 
-#: src/diff.c:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr "Eğer bir DOSYA `-' ise, standart girdi okunur."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Kullanım: %s [SEÇENEK]... DOSYAlar\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "DOSYAları satır satır karşılaştırır."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "çelişkili %s seçeneği değeri: '%s'"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "çelişkili çıktı tarz seçenekleri"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "geçersiz genişlik `%s'"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Yalnızca %s'da: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "'-', bir dizinle karşılaştırılamaz"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D seçenek dizinler için kullanılamaz."
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Ortak alt dizinler: %s ve %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "%s ve %s sembolik bağlantıları birbirinden farklı\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "%s ve %s dosyaları birbirinin aynı\n"
@@ -1130,7 +1224,7 @@ msgstr "uyumsuz seçenekler"
 msgid "'-' specified for more than one input file"
 msgstr "'-' birden fazla girdi dosyası için belirtilmiş"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "okuma başarısız oldu"
@@ -1280,33 +1374,33 @@ msgstr "iç hata: process_diff işlevi içinde geçersiz diff türü"
 msgid "invalid diff format; invalid change separator"
 msgstr "geçersiz diff biçemi; geçersiz fark ayracı"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "geçersiz diff biçemi; tamamlanmamış son satır"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "alt yazılım '%s' çalıştırılamadı"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "geçersiz diff biçemi; geçersiz satır başı karakterleri"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "iç hata: çıktıya geçersiz diff türü geçirildi"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "girdi dosyası küçüldü"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, 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:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: iç dizin döngüsü"
@@ -1460,6 +1554,16 @@ msgstr ""
 "v:\tOrtak satırları bilgi vererek dahil eder.\n"
 "q:\tÇıkar.\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: `--%s' seçeneği bilinmiyor\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s: kuraldışı seçenek -- %c\n"
 
index 29abcbd..e94879e 100644 (file)
Binary files a/po/uk.gmo and b/po/uk.gmo differ
index 576e6a6..35e3610 100644 (file)
--- a/po/uk.po
+++ b/po/uk.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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-10-31 08:58+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -19,6 +19,21 @@ msgstr ""
 "X-Generator: Lokalize 1.5\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "некоректний аргумент %s%s — «%s»"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "некоректний аргумент %s%s — «%s»"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "помилка програми"
@@ -27,113 +42,166 @@ msgstr "помилка програми"
 msgid "stack overflow"
 msgstr "переповнення стеку"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Невідома системна помилка"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "звичайний порожній файл"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "звичайний файл"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "каталог"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "спеціальний файл з блоковим доступом"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "спеціальний файл з символьним доступом"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "черга"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "символьне посилання"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "сокет"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "черга повідомлень"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "семафор"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "об’єкт у спільній пам'яті"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "об’єкт пам'яті з типами"
 
-#: lib/file-type.c:70
+#: 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 "черга"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "спеціальний файл з блоковим доступом"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "спеціальний файл з символьним доступом"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "дивний файл"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: неоднозначний параметр «%s»; можливі варіанти:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: параметр «-W %s» не є однозначним\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: додавання аргументів до параметра «--%s» не передбачено\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: додавання аргументів до параметра «%c%s» не передбачено\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: до параметра «--%s» слід додати аргумент\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: невідомий параметр «--%s»\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: невідомий параметр «%c%s»\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: некоректний параметр — «%c»\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: до параметра слід додати аргумент — «%c»\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: параметр «-W %s» не є однозначним\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: додавання аргументів до параметра «-W %s» не передбачено\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: до параметра «-W %s» слід додати аргумент\n"
@@ -159,83 +227,84 @@ msgstr "%s: до параметра «-W %s» слід додати аргуме
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "`"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "'"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Успішно"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Немає відповідностей"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Неправильний регулярний вираз"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Некоректний символ для сортування"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Неправильна назва класу символу"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Зворотна коса риска стоїть останньою"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Неправильне посилання"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Непарна [ чи [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Непарна ( чи \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Непарна \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Неправильний вміст \\{\\}"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Неправильна нижня межа"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Оперативну пам'ять вичерпано"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Неправильний попередній регулярний вираз"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "Передчасний кінець регулярного виразу"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Регулярний вираз надто великий"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Непарна ) чи \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Регулярний вираз не було вказано раніше"
 
@@ -455,17 +524,17 @@ msgstr ""
 "Загальна довідка з програмного забезпечення GNU: <http://www.gnu.org/gethelp/"
 ">\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "Файли %s та %s відрізняються\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "Двійкові файли %s та %s відрізняються\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "Наприкінці файлу немає нового рядка"
 
@@ -479,7 +548,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Спробуйте «%s --help» для отримання докладнішого опису."
@@ -494,14 +563,12 @@ msgstr "неприпустиме значення --ignore-initial «%s»"
 msgid "options -l and -s are incompatible"
 msgstr "параметри -l та -s несумісні"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "запис невдалий"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "стандартний вивід"
 
@@ -566,7 +633,7 @@ msgstr ""
 "Додаткові аргументи Н1 та Н2 визначають кількість байтів, які слід\n"
 "пропустити на початку кожного файла (типово байти не пропускаються)."
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -589,7 +656,7 @@ msgstr ""
 "Якщо ФАЙЛ не вказано або вказано як «-», дані буде прочитано зі стандартного "
 "потоку введення."
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr ""
 "Код завершення дорівнює 0, якщо вхідні файли ідентичні, 1 -- якщо\n"
@@ -600,27 +667,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "некоректне значення --bytes «%s»"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "пропущено операнд після «%s»"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "зайвий операнд «%s»"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s відрізняються: байт %s, рядок %s\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: кінець файлу у %s\n"
@@ -650,195 +717,196 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "некоректна довжина контексту «%s»"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "розбиття на сторінки не підтримується на цій машині"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "надто багато параметрів, що вказують позначки файлів"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "некоректна ширина «%s»"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "суперечливі параметри визначення ширини"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "некоректна довжина горизонту «%s»"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "неприпустима ширина табуляції «%s»"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "суперечливі параметри визначення ширини табуляції"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "необхідно вказати як --from-file, так і --to-file"
 
-#: src/diff.c:854
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
 msgstr ""
 "    --normal                  вивести дані у форматі звичайного diff (типово)"
 
-#: src/diff.c:855
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q, --brief                   сповіщати лише про різні файли"
 
-#: src/diff.c:856
+#: src/diff.c:885
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files  сповіщати про однакові файли"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 "-c, -C КТЬ, --context[=КТЬ]   вивести КТЬ (типово 3) рядки скопійованого "
 "контексту"
 
-#: src/diff.c:858
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr ""
 "-u, -U ЧИСЛО, --unified[=ЧИСЛО] вивести ЧИСЛО (типово 3) рядків спільного "
 "контексту"
 
-#: src/diff.c:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      вивести дані у форматі запису ed"
 
-#: src/diff.c:860
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr ""
 "-n, --rcs                     виводити у форматі diff систем керування "
 "версіями"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            вивести дані у два стовпчики"
 
-#: src/diff.c:862
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr ""
 "-W, --width=ЧИСЛО             виводити текст не більше ніж у ЧИСЛО (типово "
 "130) позицій у рядок"
 
-#: src/diff.c:863
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr ""
 "    --left-column             виводити спільні рядки лише у ліву колонку"
 
-#: src/diff.c:864
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "    --suppress-common-lines   не виводити однакові рядки"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 "-p, --show-c-function         показати дані щодо функцій C у яких виявлено "
 "кожну зі змін"
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 "-F, --show-function-line=RE   показати останній рядок, що відповідає "
 "формальному виразу RE"
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label МІТКА             використати МІТКУ замість назви файла\n"
 "                                (можна використовувати декілька разів)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr ""
 "-t  --expand-tabs             замінювати символи табуляції пробілами у виводі"
 
-#: src/diff.c:872
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr ""
 "-T  --initial-tab             вирівнювати табуляцію символами табуляції"
 
-#: src/diff.c:873
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr ""
 "    --tabsize=ЧИСЛО           табуляція кожні ЧИСЛО позицій виведення "
 "(типово 8)"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    не показувати пробіли або табуляції перед "
 "порожніми рядками"
 
-#: src/diff.c:875
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr ""
 "-l  --paginate                спрямувати дані до «pr» для розбиття на "
 "сторінки."
 
-#: src/diff.c:877
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr ""
 "-r, --recursive                 рекурсивно порівняти всі знайдені підкаталоги"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 "    --no-dereference            не переходити за символічними посиланнями"
 
-#: src/diff.c:879
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N, --new-file                  вважати незнайдені файли порожніми"
 
-#: src/diff.c:880
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr ""
 "    --unidirectional-new-file   вважати незнайдені у першому джерелі файли "
 "порожніми"
 
-#: src/diff.c:881
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr ""
 "    --ignore-file-name-case     ігнорувати регістр назв файлів під час "
 "порівняння"
 
-#: src/diff.c:882
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  враховувати регістр символів назв файлів"
 
-#: src/diff.c:883
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr ""
 "-x --exclude=ЗРАЗОК             виключити файли, назви яких відповідають "
 "ЗРАЗКУ"
 
-#: src/diff.c:884
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr ""
@@ -846,13 +914,13 @@ msgstr ""
 "зразкам\n"
 "                                 з файла."
 
-#: src/diff.c:885
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr ""
 "-S, --starting-file=ФАЙЛ        починати порівняння каталогів на файлі ФАЙЛ"
 
-#: src/diff.c:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -860,7 +928,7 @@ msgstr ""
 "    --from-file=ФАЙЛ1           порівняти ФАЙЛ1 з усіма операндами;\n"
 "                                  ФАЙЛ1 може бути каталогом"
 
-#: src/diff.c:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -868,84 +936,84 @@ msgstr ""
 "    --to-file=ФАЙЛ2             порівняти всі операнди з ФАЙЛОМ "
 "2;                                   ФАЙЛ2 може бути каталогом."
 
-#: src/diff.c:891
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr ""
 "-i  --ignore-case               ігнорувати регістр літер у вмісті файлів"
 
-#: src/diff.c:892
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr ""
 "-E  --ignore-tab-expansion      ігнорувати зміни, викликані заміною "
 "табуляції пробілами"
 
-#: src/diff.c:893
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-Z, --ignore-trailing-space     ігнорувати пробіли наприкінці рядка"
 
-#: src/diff.c:894
+#: src/diff.c:923
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change       ігнорувати зміни у кількості пробілів"
 
-#: src/diff.c:895
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space          ігнорувати усі пробіли"
 
-#: src/diff.c:896
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr ""
 "-B  --ignore-blank-lines        ігнорувати зміни кількості порожніх рядків"
 
-#: src/diff.c:897
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I, --ignore-matching-lines=RE  ігнорувати зміни, які відповідають "
 "формальному виразу RE"
 
-#: src/diff.c:899
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
 msgstr "-a, --text                      вважати всі файли текстовими"
 
-#: src/diff.c:900
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr ""
 "    --strip-trailing-cr         вилучити з виведених даних всі завершальні "
 "символи нового рядка"
 
-#: src/diff.c:902
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
 msgstr ""
 "    --binary                    читати та записувати файли у двійковій формі"
 
-#: src/diff.c:905
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr ""
 "-D, --ifdef=НАЗВА               виводити diff-блоки, що використовують "
 "конструкцію «#ifdef НАЗВА»."
 
-#: src/diff.c:906
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "    --ГТИП-group-format=ГФМТ    форматувати вхідні групи типу ГТИП\n"
 "                                  у відповідності до формату ГФМТ."
 
-#: src/diff.c:907
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr ""
 "    --line-format=СФМТ          форматувати всі вхідні рядки за допомогою "
 "СФМТ."
 
-#: src/diff.c:908
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "    --CТИП-group-format=СФМТ     форматувати вхідні рядки типу СТИП\n"
 "                                   у відповідності до формату СФМТ"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -953,12 +1021,12 @@ msgstr ""
 "  За допомогою цих параметрів форматування можна точно налаштувати\n"
 "    вивід diff, з узагальненням -D/--ifdef."
 
-#: src/diff.c:911
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  СТИП може бути «old», «new» чи «unchanged», ГТИП — те саме або «changed»."
 
-#: src/diff.c:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -986,7 +1054,7 @@ msgstr ""
 "        M  L+1\n"
 "    %(A=B?T:E)  якщо A дорівнює B, T, інакше E"
 
-#: src/diff.c:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -998,7 +1066,7 @@ msgstr ""
 "    %l  вміст рядка без символу нового рядка наприкінці\n"
 "    %[-][ШИРИНА][.[ТОЧН]]{doxX}n  формат номеру вхідного рядка у стилі printf"
 
-#: src/diff.c:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1012,98 +1080,125 @@ msgstr ""
 "    %c'\\OOO'  один символ з вісімковим кодом OOO\n"
 "    C    символ C (інші символи не оброблятимуться)"
 
-#: src/diff.c:934
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal            намагатись знайти найменший набір змін"
 
-#: src/diff.c:935
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr ""
 "    --horizon-lines=ЧИСЛО  зберегти ЧИСЛО спільних рядків, до та після різних"
 
-#: src/diff.c:936
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr ""
 "    --speed-large-files  вважати файли великими з багатьма розкиданими\n"
 "                           дрібними змінами."
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"    --normal                  вивести дані у форматі звичайного diff (типово)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 "    --help               показати це довідкове повідомлення і завершити "
 "роботу"
 
-#: src/diff.c:939
+#: src/diff.c:972
 msgid "-v, --version            output version information and exit"
 msgstr "-v, --version            показати дані щодо версії і завершити роботу"
 
-#: src/diff.c:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "ФАЙЛИ — це «ФАЙЛ1 ФАЙЛ2», чи «КАТАЛОГ1 КАТАЛОГ2», чи «КАТАЛОГ ФАЙЛ...»,\n"
 "чи «ФАЙЛ... КАТАЛОГ»."
 
-#: src/diff.c:942
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "Якщо вказано --from-file чи --to-file, на ФАЙЛИ обмежень немає."
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
 msgstr ""
 "Якщо ФАЙЛ вказано як «-», дані буде прочитано зі стандартного потоку "
 "введення."
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "Використання: %s [КЛЮЧ]... ФАЙЛИ\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "Порівнює два файли за рядками."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "суперечливі значення %s для ключа «%s»"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "суперечливі ключі визначення стилю виводу"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "некоректна ширина «%s»"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Лише у %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "не можна порівнювати «-» з каталогом"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D параметр не підтримується для каталогів"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Спільні підкаталоги: %s та %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "Файл %s це %s, тоді як файл %s -- %s\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "Символічні посилання %s і %s є різними\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Файли %s та %s ідентичні\n"
@@ -1122,7 +1217,7 @@ msgstr "несумісні ключі"
 msgid "'-' specified for more than one input file"
 msgstr "«-» вказано для більш ніж одного вхідного файла"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "помилка читання"
@@ -1279,33 +1374,33 @@ msgstr ""
 msgid "invalid diff format; invalid change separator"
 msgstr "неправильний формат diff-файлу; неправильний розділювач змін"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "неправильний формат diff-файлу; неповний останній рядок"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "не вдається запустити допоміжну програму «%s»"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "неправильний diff-формат; неправильні перші символи рядка"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "внутрішня помилка: на вхід подано неправильний тип diff-файлу"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "вхідний файл зменшився"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "неможливо порівняти назви файлів «%s» та «%s»"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: зациклення рекурсивного проходу каталогів"
@@ -1462,3 +1557,13 @@ msgstr ""
 "s:\tВключати спільні рядки, без виводу повідомлень.\n"
 "v:\tВключати спільні рядки, виводячи повідомлення.\n"
 "q:\tВийти.\n"
+
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: невідомий параметр «--%s»\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
index 68ef4c6..4ca886d 100644 (file)
Binary files a/po/vi.gmo and b/po/vi.gmo differ
index de23dd8..debcbe0 100644 (file)
--- a/po/vi.po
+++ b/po/vi.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: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2012-11-01 13:51+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -21,6 +21,21 @@ msgstr ""
 "X-Generator: LocFactoryEditor 1.8\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "đối số %s%s không hợp lệ “%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "đối số %s%s không hợp lệ “%s”"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "lỗi chương trình"
@@ -29,113 +44,166 @@ msgstr "lỗi chương trình"
 msgid "stack overflow"
 msgstr "stack bị tràn"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "Không biết lỗi hệ thống"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "tập tin trống thông thường"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "tập tin thường"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "thư mục"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "tập tin đặc biệt khối"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "tập tin đặc biệt ký tự"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo (vào trước, ra trước)"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "liên kết mềm"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "hàng đợi thông điệp"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "cờ hiệu"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "đối tượng bộ nhớ dùng chung"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "đối tượng bộ nhớ đánh loại"
 
-#: lib/file-type.c:70
+#: lib/file-type.c:66
+msgid "block special file"
+msgstr "tập tin đặc biệt khối"
+
+#: lib/file-type.c:69
+msgid "character special file"
+msgstr "tập tin đặc biệt ký tự"
+
+#: lib/file-type.c:72
+msgid "contiguous data"
+msgstr ""
+
+#: lib/file-type.c:75
+msgid "fifo"
+msgstr "fifo (vào trước, ra trước)"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "tập tin đặc biệt khối"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "tập tin đặc biệt ký tự"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "tập tin lạ"
+
+#: lib/file-type.c:93
+#, fuzzy
+msgid "network special file"
+msgstr "tập tin đặc biệt khối"
+
+#: 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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "tập tin lạ"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s: tùy chọn “%s” chưa rõ ràng; khả năng là:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tùy chọn “-W %s” chưa rõ ràng\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s: tùy chọn “--%s” không cho phép đối số\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s: tùy chọn “%c%s” không cho phép đối số\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s: tùy chọn “--%s” yêu cầu một đối số\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s: không nhận ra tùy chọn “--%s”\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s: không nhận ra tùy chọn “%c%s”\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s: tùy chọn không hợp lệ -- “%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s: tùy chọn yêu cầu một đối số -- “%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s: tùy chọn “-W %s” chưa rõ ràng\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s: tùy chọn “-W %s” không cho phép đối số\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s: tùy chọn “-W %s” yêu cầu một đối số\n"
@@ -161,83 +229,84 @@ msgstr "%s: tùy chọn “-W %s” yêu cầu một đối số\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr "“"
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr "”"
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "Thành công"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "Không có gì khớp"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "Biểu thức chính quy không hợp lệ"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "Ký tự đối chiếu không hợp lệ"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "Tên hạng ký tự không hợp lệ"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "Có gạch ngược theo sau"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "Tham chiếu trở lại không hợp lệ"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "Chưa khớp [ hay [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "Chưa khớp ( hay \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "Chưa khớp \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "Nội dung của \\{\\} không hợp lệ"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "Kết thúc vùng không hợp lệ"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "Hết bộ nhớ"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "Biểu thức chính quy đi trước không hợp lệ"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 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:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "Biểu thức chính quy quá lớn"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "Chưa khớp ) hay \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "Không có biểu thức chính quy đi trước"
 
@@ -456,17 +525,17 @@ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 "Trợ giúp chung về cách sử dụng phần mềm GNU: <http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, 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:462
+#: src/analyze.c:455
 #, 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:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 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."
 
@@ -481,7 +550,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr "David MacKenzie"
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, c-format
 msgid "Try '%s --help' for more information."
 msgstr "Hãy chạy lệnh “%s --help” để xem thông tin thêm."
@@ -497,14 +566,12 @@ msgstr ""
 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:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "không ghi được"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "thiết bị xuất chuẩn"
 
@@ -564,7 +631,7 @@ 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:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 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"
@@ -585,7 +652,7 @@ msgstr ""
 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:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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à "
@@ -596,27 +663,27 @@ msgstr ""
 msgid "invalid --bytes value '%s'"
 msgstr "giá trị cho tùy chọn --bytes “%s” không hợp lệ"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, c-format
 msgid "missing operand after '%s'"
 msgstr "thiếu toán hạng sau “%s”"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, c-format
 msgid "extra operand '%s'"
 msgstr "toán hạng bổ xung “%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, 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:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp: gặp kết thức tập tin tại %s\n"
@@ -651,204 +718,205 @@ msgstr "Richard Stallman"
 msgid "Len Tower"
 msgstr "Len Tower"
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, c-format
 msgid "invalid context length '%s'"
 msgstr "độ dài ngữ cảnh không hợp lệ “%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, 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:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "quá nhiều tùy chọn nhãn tập tin"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, c-format
 msgid "invalid width '%s'"
 msgstr "độ rộng không hợp lệ “%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "nhiều tùy chọn độ rộng xung đột với nhau"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, c-format
 msgid "invalid horizon length '%s'"
 msgstr "độ dài chiều đứng không hợp lệ “%s”"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, c-format
 msgid "invalid tabsize '%s'"
 msgstr "cỡ ký tự tab không hợp lệ “%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "nhiều tùy chọn cỡ ký tự tab xung đột với nhau"
 
-#: src/diff.c:734
+#: src/diff.c:763
 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:854
+#: src/diff.c:883
 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:855
+#: src/diff.c:884
 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:856
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 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:858
+#: src/diff.c:887
 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 "
 "hợp nhất"
 
-#: src/diff.c:859
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
 msgstr "-e, --ed                      xuất tập lệnh loại ed"
 
-#: src/diff.c:860
+#: src/diff.c:889
 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:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr "-y, --side-by-side            xuất ra theo đinh dạng hai cột"
 
-#: src/diff.c:862
+#: src/diff.c:891
 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:863
+#: src/diff.c:892
 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 "
 "nhau"
 
-#: src/diff.c:864
+#: src/diff.c:893
 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:866
+#: src/diff.c:895
 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:867
+#: src/diff.c:896
 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:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
 "    --label NHÃN              sử dụng NHÃN thay vì tên tập tin\n"
 "                                (có thể được lặp lại)"
 
-#: src/diff.c:871
+#: src/diff.c:900
 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 "
 "xuất"
 
-#: src/diff.c:872
+#: src/diff.c:901
 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:873
+#: src/diff.c:902
 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:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 "    --suppress-blank-empty    thu hồi khoảng cách hay cột tab đằng trước "
 "dòng kết xuất trống"
 
-#: src/diff.c:875
+#: src/diff.c:904
 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:877
+#: src/diff.c:906
 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:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr "    --no-dereference            không theo liên kết mềm"
 
-#: src/diff.c:879
+#: src/diff.c:908
 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:880
+#: src/diff.c:909
 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:881
+#: src/diff.c:910
 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 nhiều tên tập "
 "tin"
 
-#: src/diff.c:882
+#: src/diff.c:911
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr ""
 "    --no-ignore-file-name-case  so sánh chữ HOA/thường khi so sánh tên tập "
 "tin"
 
-#: src/diff.c:883
+#: src/diff.c:912
 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:884
+#: src/diff.c:913
 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:885
+#: src/diff.c:914
 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:886
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
@@ -856,7 +924,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:888
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
@@ -864,76 +932,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:891
+#: src/diff.c:920
 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 "
 "dung tập tin"
 
-#: src/diff.c:892
+#: src/diff.c:921
 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:893
+#: src/diff.c:922
 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:894
+#: src/diff.c:923
 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:895
+#: src/diff.c:924
 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:896
+#: src/diff.c:925
 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:897
+#: src/diff.c:926
 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:899
+#: src/diff.c:928
 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:900
+#: src/diff.c:929
 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:902
+#: src/diff.c:931
 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:905
+#: src/diff.c:934
 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:906
+#: src/diff.c:935
 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:907
+#: src/diff.c:936
 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:908
+#: src/diff.c:937
 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:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
@@ -941,13 +1009,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:911
+#: src/diff.c:940
 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:912
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -974,7 +1042,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:924
+#: src/diff.c:953
 msgid ""
 "  LFMT (only) may contain:\n"
 "    %L  contents of line\n"
@@ -986,7 +1054,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:928
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -1000,94 +1068,121 @@ 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:934
+#: src/diff.c:963
 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:935
+#: src/diff.c:964
 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:936
+#: src/diff.c:965
 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:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr ""
+"    --normal                  xuất ra định dạng diff thông thường (mặc định)"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr "    --help               hiển thị trợ giúp này rồi thoát"
 
-#: src/diff.c:939
+#: src/diff.c:972
 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:941
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+#: src/diff.c:974
+#, fuzzy
+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:942
+#: src/diff.c:975
 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:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 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:953
+#: src/diff.c:986
 #, 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:954
+#: src/diff.c:987
 msgid "Compare FILES line by line."
 msgstr "So sánh các TẬP-TIN theo từng dòng."
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "tùy chọn %s xung đột, giá trị “%s”"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, 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:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "độ rộng không hợp lệ “%s”"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "Chỉ trong %s: %s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "không thể so sánh “-” với một thư mục"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 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:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "Thư mục con chung: %s và %s\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, 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:1314
+#: src/diff.c:1362
 #, 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:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "Cả %s và %s là cùng một tập tin\n"
@@ -1107,7 +1202,7 @@ msgstr "nhiều tùy chọn không tương thích với nhau"
 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:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "đọc gặp lỗi"
@@ -1263,33 +1358,33 @@ msgstr ""
 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:1251
+#: src/diff3.c:1252
 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:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, 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:1300
+#: src/diff3.c:1301
 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:1373
+#: src/diff3.c:1374
 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:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "tập tin đầu vào co lại"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, 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:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr "%s: vòng lặp thư mục đệ quy"
@@ -1443,6 +1538,16 @@ 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:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s: không nhận ra tùy chọn “--%s”\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "-i SKIP1:SKIP2  --ignore-initial=SKIP1:SKIP2"
 #~ msgstr "-i SỐ1:SỐ2  --ignore-initial=SỐ1:SỐ2"
 
index 4661339..c2009c3 100644 (file)
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
index d53c7fe..49c7746 100644 (file)
@@ -1,21 +1,38 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
+# Chinese (simplified) translation for diffutils
+# Copyright (C) 2004, 2013 Free Software Foundation, Inc.
+# This file is distributed under the same license as the diffutils package.
 # Yingxin Zhou <eerd003@dlut.edu.cn>, 2004.
+# Anthony Fok <foka@debian.org>, 2013.
+# Mingye Wang (Arthur2e5) <arthur200126@gmail.com>, 2016.
 #
-#, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: diffutils 2.8.7\n"
+"Project-Id-Version: diffutils 3.3-pre1\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
-"PO-Revision-Date: 2004-06-05 11:37+0800\n"
-"Last-Translator: Yingxin Zhou <eerd003@dlut.edu.cn>\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
+"PO-Revision-Date: 2016-02-17 19:23+0100\n"
+"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@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-Generator: Poedit 1.8.7\n"
+
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "无效的 %s%s 参数 “%s”"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "无效的 %s%s 参数 “%s”"
 
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
@@ -25,114 +42,167 @@ msgstr "程序错误"
 msgid "stack overflow"
 msgstr "栈溢出"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "未知的系统错误"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "常规空文件"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "常规文件"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "目录"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "特殊块文件"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "特殊字符文件"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "符号链接"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "套接字"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "消息队列"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "信号量"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "共享内存目标"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "分类内存目标"
 
-#: lib/file-type.c:70
+#: 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 "有名管道"
+
+#: lib/file-type.c:78
+msgid "door"
+msgstr ""
+
+#: lib/file-type.c:81
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "特殊块文件"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "特殊字符文件"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "奇怪的文件"
+
+#: lib/file-type.c:93
+#, fuzzy
+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:547 lib/getopt.c:576
-#, fuzzy, c-format
+#: lib/getopt.c:575 lib/getopt.c:604
+#, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
-msgstr "%s:选项 “%s” 意义不明确\n"
+msgstr "%s:选项 “%s” 意义不明确;可能性如下:"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
 #, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s:选项 “-W %s” 意义不明确\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
+#, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s:选项 “--%s” 不接受参数\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
-#, fuzzy, c-format
+#: lib/getopt.c:667 lib/getopt.c:672
+#, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s:选项 “%c%s” 不接受参数\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
-#, fuzzy, c-format
+#: lib/getopt.c:715 lib/getopt.c:734
+#, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s:选项 “%s” 需要一个参数\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
-#, fuzzy, c-format
+#: lib/getopt.c:772 lib/getopt.c:775
+#, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s:选项 “--%s” 无法识别\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
-#, fuzzy, c-format
+#: lib/getopt.c:783 lib/getopt.c:786
+#, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s:选项 “%c%s” 无法识别\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
-#, fuzzy, c-format
+#: lib/getopt.c:835 lib/getopt.c:838
+#, c-format
 msgid "%s: invalid option -- '%c'\n"
-msgstr "%s:无效选项 -- %c\n"
+msgstr "%s:无效选项 -- “%c”\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
-#, fuzzy, c-format
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
+#, c-format
 msgid "%s: option requires an argument -- '%c'\n"
-msgstr "%s:选项需要一个参数 --%c\n"
+msgstr "%s:选项需要一个参数 -- “%c”\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
-#, fuzzy, c-format
+#: lib/getopt.c:964 lib/getopt.c:980
+#, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s:选项 “-W %s” 意义不明确\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
-#, fuzzy, c-format
+#: lib/getopt.c:1004 lib/getopt.c:1022
+#, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
-msgstr "%s:选项 “-W %s” 不允许带参数\n"
+msgstr "%s:选项 “-W %s” 不接受参数\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
-#, fuzzy, c-format
+#: lib/getopt.c:1043 lib/getopt.c:1061
+#, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s:选项 “%s” 需要一个参数\n"
 
@@ -157,83 +227,84 @@ msgstr "%s:选项 “%s” 需要一个参数\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
-msgstr ""
+msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
-msgstr ""
+msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "成功"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "没有匹配"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "无效的正则表达式"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "无效的对照字符"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "无效的字符种类名称"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "末端有多余的反斜号"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "无效的向后引用"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "没有匹配的 [ 或 [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "没有匹配的 ( 或 \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "没有匹配的 \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} 中的内容无效"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "范围末端字符无效"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "内存耗尽"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "无效的前导正则表达式"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "正则表达式过旱结束"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "正则表达式过大"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
-msgstr "没有匹配的 ) 或 \\"
+msgstr "没有匹配的 ) 或 \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "之前没有任何正则表达式"
 
@@ -243,57 +314,56 @@ msgstr "内存耗尽"
 
 #: lib/xfreopen.c:35
 msgid "stdin"
-msgstr ""
+msgstr "标准输入"
 
 #: lib/xfreopen.c:36
 msgid "stdout"
-msgstr ""
+msgstr "标准输出"
 
 #: lib/xfreopen.c:37
 msgid "stderr"
-msgstr ""
+msgstr "标准错误"
 
 #: lib/xfreopen.c:38
-#, fuzzy
 msgid "unknown stream"
-msgstr "未知的系统错误"
+msgstr "未知"
 
 #: lib/xfreopen.c:39
 #, c-format
 msgid "failed to reopen %s with mode %s"
-msgstr ""
+msgstr "未能以模式 %2$s 重打开 %1$s"
 
 #: lib/xstrtol-error.c:63
-#, fuzzy, c-format
+#, c-format
 msgid "invalid %s%s argument '%s'"
-msgstr "无效的 --bytes 值 `%s'"
+msgstr "无效的 %s%s 参数 “%s”"
 
 #: lib/xstrtol-error.c:68
 #, c-format
 msgid "invalid suffix in %s%s argument '%s'"
-msgstr ""
+msgstr "在 %s%s 的参数 “%s” 中有无效的后缀"
 
 #: lib/xstrtol-error.c:72
 #, c-format
 msgid "%s%s argument '%s' too large"
-msgstr ""
+msgstr "%s %s 参数 “%s” 太大"
 
 #: lib/version-etc.c:74
 #, c-format
 msgid "Packaged by %s (%s)\n"
-msgstr ""
+msgstr "由 %s 打包 (%s)\n"
 
 #: lib/version-etc.c:77
 #, c-format
 msgid "Packaged by %s\n"
-msgstr ""
+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:84
 msgid "(C)"
-msgstr ""
+msgstr "©"
 
 #: lib/version-etc.c:86
 msgid ""
@@ -304,24 +374,30 @@ msgid ""
 "There is NO WARRANTY, to the extent permitted by law.\n"
 "\n"
 msgstr ""
+"\n"
+"许可证:GPLv3+:GNU 通用公共许可证第 3 版或更新版本<http://gnu.org/licenses/"
+"gpl.html>。\n"
+"本软件是自由软件:您可以自由修改和重新发布它。\n"
+"在法律允许的范围内没有其他保证。\n"
+"\n"
 
 #. TRANSLATORS: %s denotes an author name.
 #: lib/version-etc.c:102
 #, c-format
 msgid "Written by %s.\n"
-msgstr "作者 %s。\n"
+msgstr "作者%s。\n"
 
 #. TRANSLATORS: Each %s denotes an author name.
 #: lib/version-etc.c:106
 #, 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:110
 #, 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
@@ -332,8 +408,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
@@ -344,8 +420,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
@@ -356,8 +432,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
@@ -368,8 +444,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
@@ -381,9 +457,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
@@ -395,9 +471,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
@@ -409,9 +485,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
@@ -423,57 +499,62 @@ msgid ""
 "\n"
 "Report bugs to: %s\n"
 msgstr ""
+"\n"
+"报告程序错误到: %s\n"
+"报告翻译错误到: https://translationproject.org/teams/zh_CN.html\n"
 
 #: lib/version-etc.c:247
 #, 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"
 
 #: lib/version-etc.c:251
 #, c-format
 msgid "%s home page: <%s>\n"
-msgstr ""
+msgstr "%s 主页: <%s>\n"
 
 #: lib/version-etc.c:253
 #, c-format
 msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
-msgstr ""
+msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n"
 
 #: lib/version-etc.c:256
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
-msgstr ""
+msgstr "使用 GNU 软件的通用帮助:<http://www.gnu.org/gethelp/>\n"
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "文件 %s 和 %s 不同\n"
 
-#: src/analyze.c:462
-#, fuzzy, c-format
+#: src/analyze.c:455
+#, c-format
 msgid "Binary files %s and %s differ\n"
-msgstr "文件 %s 和 %s 不同\n"
+msgstr "二进制文件 %s 和 %s 不同\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
-msgstr "文件尾没有 newline 字符"
+msgstr "文件尾没有换行符"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:43
 msgid "Torbjorn Granlund"
-msgstr "Torbjorn Granlund"
+msgstr ""
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/cmp.c:44
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
-#, fuzzy, c-format
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
+#, c-format
 msgid "Try '%s --help' for more information."
 msgstr "请尝试 “%s --help”,以获得更多信息。"
 
 #: src/cmp.c:137
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --ignore-initial value '%s'"
 msgstr "无效的 --ignore-initial 值 “%s”"
 
@@ -482,44 +563,40 @@ msgstr "无效的 --ignore-initial 值 “%s”"
 msgid "options -l and -s are incompatible"
 msgstr "选项 -l 和 -s 不兼容"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "写入失败"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "标准输出"
 
 #: src/cmp.c:161
-#, fuzzy
 msgid "-b, --print-bytes          print differing bytes"
-msgstr "-b  --print-bytes æ\89\93å\8d°å\87ºå\86\85容ç\9b¸å¼\82ç\9a\84å­\97è\8a\82ã\80\82"
+msgstr "-b  --print-bytes          æ\89\93å\8d°å\87ºå\86\85容ç\9b¸å¼\82ç\9a\84å­\97è\8a\82"
 
 #: src/cmp.c:162
-#, fuzzy
 msgid "-i, --ignore-initial=SKIP         skip first SKIP bytes of both inputs"
-msgstr "-i SKIP  --ignore-initial=SKIP  ç\95¥è¿\87è¾\93å\85¥å\86\85容ç\9a\84å\89\8d SKIP å­\97è\8a\82ã\80\82"
+msgstr "-i, --ignore-initial=SKIP         ä¸¤ä¸ªè¾\93å\85¥å\86\85容é\83½ç\95¥è¿\87å\89\8d SKIP å­\97è\8a\82"
 
 #: src/cmp.c:163
-#, fuzzy
 msgid ""
 "-i, --ignore-initial=SKIP1:SKIP2  skip first SKIP1 bytes of FILE1 and\n"
 "                                      first SKIP2 bytes of FILE2"
-msgstr "略过文件 FILE1 的前 SKIP1 个字节和文件 FILE2 前 SKIP2 个字节。"
+msgstr ""
+"-i, --ignore-initial=跳1:跳2      略过 <文件1> 的前 <跳1> 个字节和文件 <文件"
+"2>\n"
+"                                    的前 <跳2> 个字节。"
 
 #: src/cmp.c:165
-#, fuzzy
 msgid ""
 "-l, --verbose              output byte numbers and differing byte values"
-msgstr "-l  --verbose  输出所有相异字节的字节数和内容。"
+msgstr "-l, --verbose              输出所有相异字节的字节数和内容"
 
 #: src/cmp.c:166
-#, fuzzy
 msgid "-n, --bytes=LIMIT          compare at most LIMIT bytes"
-msgstr "-n LIMIT  --bytes=LIMIT  æ\9c\80å¤\9aæ¯\94è¾\83 LIMIT ä¸ªå­\97è\8a\82ã\80\82"
+msgstr "-n, --bytes=é\99\90å\88¶           æ\9c\80å¤\9aæ¯\94è¾\83 <é\99\90å\88¶> ä¸ªå­\97è\8a\82"
 
 #: src/cmp.c:167
 msgid "-s, --quiet, --silent      suppress all normal output"
@@ -527,33 +604,31 @@ msgstr ""
 
 #: src/cmp.c:168
 msgid "    --help                 display this help and exit"
-msgstr ""
+msgstr "    --help                 显示此帮助信息并退出"
 
 #: src/cmp.c:169
-#, fuzzy
 msgid "-v, --version              output version information and exit"
-msgstr "-v  --version  输出版本信息。"
+msgstr "-v, --version              输出版本信息并退出"
 
 #: src/cmp.c:178
 #, c-format
 msgid "Usage: %s [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]\n"
-msgstr "用法: %s [选项]... 文件1 [文件2 [SKIP1 [SKIP2]]]\n"
+msgstr "用法: %s [选项]... 文件1 [文件2 [跳1 [跳2]]]\n"
 
 #: src/cmp.c:180
 msgid "Compare two files byte by byte."
 msgstr "逐字节比较两个文件。"
 
 #: src/cmp.c:182
-#, 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 "SKIP1 和 SKIP2分别是每个文件要略过的字节数。"
+msgstr "<跳1> 和 <跳2> 分别是每个文件要略过的字节数。"
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
-msgstr ""
+msgstr "长选项的必需参数也是相应短选项的必需参数。\n"
 
 #: src/cmp.c:191
 msgid ""
@@ -561,45 +636,45 @@ msgid ""
 "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 ""
-"SKIP 值可以加上以下的单位:\n"
-"kB=1000、K=1024、MB=1000000、M=1048576、GB=1000000000、G=1073741824,\n"
-"还有 T、P、E、Z、Y 如此类推。"
+"<跳> 值可以加上以下的单位:\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,如此类推。"
 
 #: src/cmp.c:194
-#, fuzzy
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "如果文件是 “-” 或没给出,则从标准输入读入内容。"
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 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:240
-#, fuzzy, c-format
+#, c-format
 msgid "invalid --bytes value '%s'"
 msgstr "无效的 --bytes 值 `%s'"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
-#, fuzzy, c-format
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
+#, c-format
 msgid "missing operand after '%s'"
 msgstr "操作数 “%s” 后缺少参数"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
-#, fuzzy, c-format
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
+#, c-format
 msgid "extra operand '%s'"
 msgstr "多余的操作数 “%s”"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s 不同:第 %s 字节,第 %s 行\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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"
 
-#: src/cmp.c:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp:%s 已结束\n"
@@ -622,311 +697,273 @@ msgstr ""
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:52
 msgid "Richard Stallman"
-msgstr ""
+msgstr "理查德·斯托曼"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/diff.c:53
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
-#, fuzzy, c-format
+#: src/diff.c:351
+#, c-format
 msgid "invalid context length '%s'"
 msgstr "无效的上下文行数 “%s”"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "此系统不支持分页"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "过多的文件标号选项"
 
-#: src/diff.c:514
-#, fuzzy, c-format
+#: src/diff.c:526
+#, c-format
 msgid "invalid width '%s'"
 msgstr "无效的宽度 “%s”"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "宽度选项冲突"
 
-#: src/diff.c:543
-#, fuzzy, c-format
+#: src/diff.c:555
+#, c-format
 msgid "invalid horizon length '%s'"
 msgstr "无效的水平长度 “%s”"
 
-#: src/diff.c:598
-#, fuzzy, c-format
+#: src/diff.c:611
+#, c-format
 msgid "invalid tabsize '%s'"
 msgstr "无效的制表符宽度 “%s”"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "的制表符选项冲突"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "同时指定了选项 --from-file 和 --to-file"
 
-#: src/diff.c:854
-#, fuzzy
+#: src/diff.c:883
 msgid "    --normal                  output a normal diff (the default)"
-msgstr "--normal 以正常的 diff 方式输出。"
+msgstr "    --normal                  以正常的 diff 方式输出 (默认)"
 
-#: src/diff.c:855
-#, fuzzy
+#: src/diff.c:884
 msgid "-q, --brief                   report only when files differ"
-msgstr "-q  --brief  只显示文件是否不同。"
+msgstr "-q, --brief                   只有在文件不同时报告"
 
-#: src/diff.c:856
-#, fuzzy
+#: src/diff.c:885
 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:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
-#, fuzzy
+#: src/diff.c:887
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
-msgstr "-w NUM  --width=NUM         每行显示最多 NUM(默认 130)个字符。"
+msgstr "-u, -U 数量, --unified[=数量] 输出 <数量>(默认为 3)行一致化上下文"
 
-#: src/diff.c:859
-#, fuzzy
+#: src/diff.c:888
 msgid "-e, --ed                      output an ed script"
-msgstr "-e  --ed 以 ed script 方式输出。"
+msgstr "-e, --ed                      以 ed script 方式输出"
 
-#: src/diff.c:860
-#, fuzzy
+#: src/diff.c:889
 msgid "-n, --rcs                     output an RCS format diff"
-msgstr "-n  --rcs  以 RCS diff 格式输出。"
+msgstr "-n, --rcs                     以 RCS diff 格式输出"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
-#, fuzzy
+#: src/diff.c:891
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
-msgstr "-w NUM  --width=NUM         每行显示最多 NUM(默认 130)个字符。"
+msgstr "-W, --width=数量              每行显示最多 <数量>(默认 130)个字符"
 
-#: src/diff.c:863
-#, fuzzy
+#: src/diff.c:892
 msgid ""
 "    --left-column             output only the left column of common lines"
-msgstr "-l  --left-column           当有两行相同时只显示左边的一行。"
+msgstr "    --left-column             当有两行相同时只显示左边栏的一行"
 
-#: src/diff.c:864
-#, fuzzy
+#: src/diff.c:893
 msgid "    --suppress-common-lines   do not output common lines"
-msgstr "-s  --suppress-common-lines  当有两行相同时不显示。"
+msgstr "    --suppress-common-lines   当有两行相同时不显示"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"    --from-file=文件1           将<文件1>和操作数中的所有文件/目录作比较;\n"
+"                                  <文件1>可以是目录"
 
-#: src/diff.c:871
-#, fuzzy
+#: src/diff.c:900
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  将输出中的 tab 转换成空格。"
+msgstr "-t, --expand-tabs             将输出中的 tab 转换成空格"
 
-#: src/diff.c:872
-#, fuzzy
+#: src/diff.c:901
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  每行先加上 tab 字符,使 tab 字符可以对齐。"
+msgstr "-T, --initial-tab             每行先加上 tab 字符,使 tab 字符可以对齐"
 
-#: src/diff.c:873
-#, fuzzy
+#: src/diff.c:902
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
-msgstr "--tabsize=NUM  定位字符 (tab) 的宽度,默认为 8 个空格宽。"
+msgstr "    --tabsize=数字           TAB 格的宽度,默认为 8 个打印列宽"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
-#, fuzzy
+#: src/diff.c:904
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
-msgstr "-l  --paginate 将输出送至‘pr’指令来分页。"
+msgstr "-l, --paginate                将输出送至 “pr” 指令来分页"
 
-#: src/diff.c:877
-#, fuzzy
+#: src/diff.c:906
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
-msgstr "-r  --recursive  连同所有子目录一起比较。"
+msgstr "-r, --recursive                 连同所有子目录一起比较"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
-#, fuzzy
+#: src/diff.c:908
 msgid "-N, --new-file                  treat absent files as empty"
-msgstr "-N  --new-file  不存在的文件以空文件方式处理。"
+msgstr "-N, --new-file                  不存在的文件以空文件方式处理"
 
-#: src/diff.c:880
-#, fuzzy
+#: src/diff.c:909
 msgid "    --unidirectional-new-file   treat absent first files as empty"
-msgstr "--unidirectional-new-file  若第一文件案不存在,以空文件处理。"
+msgstr "    --unidirectional-new-file   若第一文件不存在,以空文件处理"
 
-#: src/diff.c:881
-#, fuzzy
+#: src/diff.c:910
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
-msgstr "--ignore-file-name-case  忽略文件名大小写的区别。"
+msgstr "    --ignore-file-name-case     忽略文件名大小写的区别"
 
-#: src/diff.c:882
-#, fuzzy
+#: src/diff.c:911
 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:883
-#, fuzzy
+#: src/diff.c:912
 msgid "-x, --exclude=PAT               exclude files that match PAT"
-msgstr "-x PAT  --exclude=PAT  排除匹配 PAT 的文件。"
+msgstr "-x, --exclude=模式              排除匹配 <模式> 的文件"
 
-#: src/diff.c:884
-#, fuzzy
+#: src/diff.c:913
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
-msgstr ""
-"-X FILE  --exclude-from=FILE   排除所有匹配在 FILE 中列出的模式的文件。"
+msgstr "-X, --exclude-from=文件         排除所有匹配在<文件>中列出的模式的文件"
 
-#: src/diff.c:885
-#, fuzzy
+#: src/diff.c:914
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
-msgstr "-S FILE  --starting-file=FILE  当比较目录時,由 FILE 开始比较。"
+msgstr "-S, --starting-file=文件        当比较目录時,由<文件>开始比较"
 
-#: src/diff.c:886
-#, fuzzy
+#: src/diff.c:915
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
 "                                  FILE1 can be a directory"
 msgstr ""
-"--from-file=FILE1  将 FILE1 和操作数中的所有文件/目录作比较。FILE1 可以是目"
-"录。"
+"    --from-file=文件1           将<文件1>和操作数中的所有文件/目录作比较;\n"
+"                                  <文件1>可以是目录"
 
-#: src/diff.c:888
-#, fuzzy
+#: src/diff.c:917
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
 "                                  FILE2 can be a directory"
 msgstr ""
-"--to-file=FILE2    将操作数中的所有文件/目录和 FILE2 作比较。FILE2 可以是目"
-"录。"
+"    --to-file=文件2             将操作数中的所有文件/目录和<文件2>作比较;\n"
+"                                  <文件2>可以是目录"
 
-#: src/diff.c:891
-#, fuzzy
+#: src/diff.c:920
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
-msgstr "-i  --ignore-case  忽略文件内容大小写的区别。"
+msgstr "-i, --ignore-case               忽略文件内容大小写的区别"
 
-#: src/diff.c:892
-#, fuzzy
+#: src/diff.c:921
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  å¿½ç\95¥ç\94±å\88¶è¡¨ç¬¦å®½åº¦é\80 æ\88\90ç\9a\84å·®å¼\82ã\80\82"
+msgstr "-E, --ignore-tab-expansion      å¿½ç\95¥ç\94±å\88¶è¡¨ç¬¦å®½åº¦é\80 æ\88\90ç\9a\84å·®å¼\82"
 
-#: src/diff.c:893
-#, fuzzy
+#: src/diff.c:922
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
-msgstr "-w  --ignore-all-space   忽略所有空格。"
+msgstr "-Z, --ignore-trailing-space     忽略每行末端的空格"
 
-#: src/diff.c:894
-#, fuzzy
+#: src/diff.c:923
 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ã\80\82"
+msgstr "-b, --ignore-space-change       å¿½ç\95¥ç\94±ç©ºæ ¼æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
 
-#: src/diff.c:895
-#, fuzzy
+#: src/diff.c:924
 msgid "-w, --ignore-all-space          ignore all white space"
-msgstr "-w  --ignore-all-space   忽略所有空格。"
+msgstr "-w, --ignore-all-space          忽略所有空格"
 
-#: src/diff.c:896
-#, fuzzy
+#: src/diff.c:925
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
-msgstr "-B  --ignore-blank-lines  å¿½ç\95¥ä»»ä½\95å\9b ç©ºè¡\8cè\80\8cé\80 æ\88\90ç\9a\84å·®å¼\82ã\80\82"
+msgstr "-B, --ignore-blank-lines        å¿½ç\95¥ä»»ä½\95å\9b ç©ºè¡\8cè\80\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
 
-#: src/diff.c:897
-#, fuzzy
+#: src/diff.c:926
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  如果某行匹配正则表达式,则忽略由该行造成的"
-"å·®å¼\82ã\80\82"
+"-I, --ignore-matching-lines=正则 若某行完全匹配 <正则>,则忽略由该行造成的差"
+"å¼\82"
 
-#: src/diff.c:899
-#, fuzzy
+#: src/diff.c:928
 msgid "-a, --text                      treat all files as text"
-msgstr "-a  --text  所有文件都以文本方式处理。"
+msgstr "-a, --text                      所有文件都以文本方式处理"
 
-#: src/diff.c:900
-#, fuzzy
+#: src/diff.c:929
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  去除输入内容每行末端的 carriage return 字符。"
+msgstr "    --strip-trailing-cr         去除输入内容每行末端的回车(CR)字符"
 
-#: src/diff.c:902
-#, fuzzy
+#: src/diff.c:931
 msgid "    --binary                    read and write data in binary mode"
-msgstr "以二进制方式读写数据。"
+msgstr "    --binary                    以二进制方式读写数据"
 
-#: src/diff.c:905
-#, fuzzy
+#: src/diff.c:934
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
-msgstr "-D NAME  --ifdef=NAME  输出的内容以‘#ifdef NAME’方式标明差异。"
+msgstr ""
+"-D, --ifdef=名称                输出的内容以 ‘#ifdef <名称>’ 方式标明差异"
 
-#: src/diff.c:906
-#, fuzzy
+#: src/diff.c:935
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
-msgstr ""
-"--GTYPE-group-format=GFMT  效果类似,但会以 GFMT 格式处理 GTYPE 输入的行。"
+msgstr "    --GTYPE-group-format=GFMT   以 GFMT 格式处理 GTYPE 输入行组"
 
-#: src/diff.c:907
-#, fuzzy
+#: src/diff.c:936
 msgid "    --line-format=LFMT          format all input lines with LFMT"
-msgstr "--line-format=LFMT  效果类似,但会以 LFMT 格式处理每一行资料。"
+msgstr "    --line-format=LFMT          以 LFMT 格式处理每一行资料"
 
-#: src/diff.c:908
-#, fuzzy
+#: src/diff.c:937
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
-msgstr ""
-"--LTYPE-line-format=LFMT   效果类似,但会以 LFMT 格式处理 LTYPE 输入的行。"
+msgstr "    --LTYPE-line-format=LFMT    以 LFMT 格式处理 LTYPE 输入的行"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
-#, fuzzy
+#: src/diff.c:940
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
-"  LTYPE 可以是‘old’、‘new’或‘unchanged’。GTYPE 可以是 LTYPE 的选择\n"
-"  或是‘changed’。"
+"  LTYPE 可以是 “old”、“new” 或 “unchanged”。GTYPE 可以是 LTYPE 的选择\n"
+"  或是 “changed”。"
 
-#: src/diff.c:912
-#, fuzzy
+#: src/diff.c:941
 msgid ""
 "  GFMT (only) may contain:\n"
 "    %<  lines from FILE1\n"
@@ -941,33 +978,32 @@ msgid ""
 "        M  L+1\n"
 "    %(A=B?T:E)  if A equals B then T else E"
 msgstr ""
-"  GFMT 可包括:\n"
-"    %<  该组中每行属于 FILE1 的差异\n"
-"    %>  该组中每行属于 FILE2 的差异\n"
-"    %=  该组中同时在 FILE1 和 FILE2 出现的每一行\n"
+"(仅)GFMT 可包括:\n"
+"    %<  该组中每行属于<文件1>的差异\n"
+"    %>  该组中每行属于<文件2>的差异\n"
+"    %=  该组中同时在<文件1>和<文件2>出现的每一行\n"
 "    %[-][宽度][.[精确度]]{doxX}字符  以 printf 格式表示该<字符>代表的内容\n"
 "      大写<字符>表示属于新的文件,小写表示属于旧的文件。<字符>的意义如下:\n"
 "        F  行组中第一行的行号\n"
 "        L  行组中最后一行的行号\n"
 "        N  行数 ( =L-F+1 )\n"
 "        E  F-1\n"
-"        M  L+1"
+"        M  L+1\n"
+"    %(A=B?T:E)  如果 A 等于 B 那么 T 否则 E"
 
-#: src/diff.c:924
-#, fuzzy
+#: src/diff.c:953
 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"
+"(仅)LFMT 可包括:\n"
 "    %L  该行的内容\n"
-"    %l  该行的内容,但不包括结束的 newline 字符\n"
-"    %[-][宽度][.[精确度]]{doxX}n  ä»¥ printf æ ¼å¼\8f表示ç\9a\84è¾\93å\85¥èµ\84æ\96\99è¡\8cå\8f·"
+"    %l  该行的内容,但不包括结束的换行符\n"
+"    %[-][宽度][.[精确度]]{doxX}n  以 printf 格式表示的输入行号"
 
-#: src/diff.c:928
-#, fuzzy
+#: src/diff.c:957
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
 "    %%  %\n"
@@ -975,105 +1011,123 @@ msgid ""
 "    %c'\\OOO'  the character with octal code OOO\n"
 "    C    the character C (other characters represent themselves)"
 msgstr ""
-"  GFMT 或 LFMT 可包括:\n"
+"  GFMT 或 LFMT 可包括:\n"
 "    %%        %\n"
-"    %c'C'     字符 C\n"
-"    %c'\\OOO'  八进制数字 OOO 所代表的字符"
+"    %c'C'     单个字符 C\n"
+"    %c'\\OOO'  八进制码 OOO 所代表的字符\n"
+"    C         字符 C(处上述转义外的其他字符代表它们自身)"
 
-#: src/diff.c:934
-#, fuzzy
+#: src/diff.c:963
 msgid "-d, --minimal            try hard to find a smaller set of changes"
-msgstr "-d  --minimal  尽可能找出最小的差异。"
+msgstr "-d, --minimal            尽可能找出最小的差异。"
 
-#: src/diff.c:935
-#, fuzzy
+#: src/diff.c:964
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
-msgstr "--horizon-lines=NUM      (此选项不做处理)"
+msgstr "    --horizon-lines=数量 保持<数量>行的一致前后缀"
 
-#: src/diff.c:936
-#, fuzzy
+#: src/diff.c:965
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
-msgstr "-H  --speed-large-files  å\81\87设æ\96\87件å\8d\81å\88\86大è\80\8cä¸\94æ\96\87件中å\90«æ\9c\89许å¤\9aå¾®å°\8fç\9a\84å·®å¼\82ã\80\82"
+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"
 
-#: src/diff.c:938
-msgid "    --help               display this help and exit"
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:967
 #, fuzzy
-msgid "-v, --version            output version information and exit"
-msgstr "-v  --version  输出版本信息。"
+msgid "                           or 'auto' (the default)"
+msgstr "    --normal                  以正常的 diff 方式输出 (默认)"
 
-#: src/diff.c:941
-#, fuzzy
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
 msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
 msgstr ""
-"FILES 的格式可以是‘FILE1 FILE2’、‘DIR1 DIR2’、‘DIR FILE...’或\n"
-"    ‘FILE... DIR’。"
 
-#: src/diff.c:942
+#: src/diff.c:971
+msgid "    --help               display this help and exit"
+msgstr "    --help               显示此帮助信息并退出"
+
+#: src/diff.c:972
+msgid "-v, --version            output version information and exit"
+msgstr "-v, --version            输出版本信息并退出"
+
+#: src/diff.c:974
 #, fuzzy
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
+msgstr ""
+"<文件们> 的格式可以是‘文件1 文件2’、‘目录1 目录2’、‘目录 文件...’或\n"
+"    ‘文件... 目录’。"
+
+#: src/diff.c:975
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
-msgstr "如果使用 --from-file 或 --to-file 选项,FILES 的格式则不受限制。"
+msgstr "如果使用 --from-file 或 --to-file 选项,<文件名> 的格式则不受限制。"
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
-#, fuzzy
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 msgid "If a FILE is '-', read standard input."
-msgstr "如果 FILE 是‘-’,则由标准输入读取内容。"
+msgstr "如果 FILE 是 “-”,则由标准输入读取内容。"
 
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
-msgstr "用法:%s [选项]... FILES\n"
+msgstr "用法:%s [选项]... 文件们\n"
 
-#: src/diff.c:954
-#, fuzzy
+#: src/diff.c:987
 msgid "Compare FILES line by line."
-msgstr "逐行比较文件。"
+msgstr "逐行比较<文件们>。"
 
-#: src/diff.c:988
-#, fuzzy, c-format
+#: src/diff.c:1021
+#, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "互相冲突的 %s 选项,参数值为 “%s”"
 
-#: src/diff.c:1001
-#, fuzzy, c-format
+#: src/diff.c:1034
+#, c-format
 msgid "conflicting output style options"
-msgstr "互相冲突的输出选项 %s ,参数值为“%s”"
+msgstr "互相冲突的输出风格选项。"
+
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "无效的宽度 “%s”"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "只在 %s 存在:%s\n"
 
-#: src/diff.c:1192
-#, fuzzy
+#: src/diff.c:1240
 msgid "cannot compare '-' to a directory"
 msgstr "“-” 无法与目录作比较"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D 选项不支持目录使用"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "%s 和 %s 有共同的子目录\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "文件 %s 是%s而文件 %s 是%s\n"
 
-#: src/diff.c:1314
-#, fuzzy, c-format
+#: src/diff.c:1362
+#, c-format
 msgid "Symbolic links %s and %s differ\n"
-msgstr "文件 %s 和 %s 不同\n"
+msgstr "软链接 %s 和 %s 不同\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "檔案 %s 和 %s 相同\n"
@@ -1089,55 +1143,50 @@ msgid "incompatible options"
 msgstr "不兼容的选项"
 
 #: src/diff3.c:353
-#, fuzzy
 msgid "'-' specified for more than one input file"
-msgstr "输入文件 “-” 不可多於一个"
+msgstr "“-”作输入文件不可多于一处"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "读取时失败"
 
 #: src/diff3.c:428
-#, fuzzy
 msgid "-A, --show-all              output all changes, bracketing conflicts"
-msgstr "-A  --show-all       输出所有要更改的部份,并括上互相冲突的地方。"
+msgstr "-A, --show-all              输出所有要更改的部份,并括上互相冲突的地方"
 
 #: src/diff3.c:430
-#, fuzzy
 msgid ""
 "-e, --ed                    output ed script incorporating changes\n"
 "                                from OLDFILE to YOURFILE into MYFILE"
 msgstr ""
-"-e  --ed             取出由 OLDFILE 至 YOURFILE 的更改部份,并输出可将此\n"
-"                       改变套用至 MYFILE 的 ed script。"
+"-e, --ed                    取出由 <旧文件> 至 <你的文件> 的更改部份,并输出"
+"可将此\n"
+"                              改变应用至 <我的文件> 的 ed 脚本"
 
 #: src/diff3.c:432
-#, fuzzy
 msgid "-E, --show-overlap          like -e, but bracket conflicts"
-msgstr "-E  --show-overlap   输出未合并的更改部份,并括上互相冲突的地方。"
+msgstr "-E, --show-overlap          类似 -e,但括上互相冲突的地方"
 
 #: src/diff3.c:433
-#, fuzzy
 msgid ""
 "-3, --easy-only             like -e, but incorporate only nonoverlapping "
 "changes"
-msgstr "-3  --easy-only   输出未合并而且不重叠的更改部份。"
+msgstr ""
+"-3, --easy-only             类似 -e,但只输出未合并而且不重叠的更改部份"
 
 #: src/diff3.c:434
-#, fuzzy
 msgid ""
 "-x, --overlap-only          like -e, but incorporate only overlapping changes"
-msgstr "-x  --overlap-only   只输出重叠的更改部份。"
+msgstr "-x, --overlap-only          类似 -e,但只输出重叠的更改部份"
 
 #: src/diff3.c:435
 msgid "-X                          like -x, but bracket conflicts"
-msgstr ""
+msgstr "-X                          类似 -x,但括上互相冲突的地方"
 
 #: src/diff3.c:436
-#, fuzzy
 msgid "-i                          append 'w' and 'q' commands to ed scripts"
-msgstr "-i  在 ed script 中附加‘w’和‘q’指令。"
+msgstr "-i                          在 ed script 中附加‘w’和‘q’命令"
 
 #: src/diff3.c:438
 msgid ""
@@ -1146,24 +1195,20 @@ msgid ""
 msgstr ""
 
 #: src/diff3.c:441
-#, fuzzy
 msgid "-a, --text                  treat all files as text"
-msgstr "-a  --text  所有文件都以文本方式处理。"
+msgstr "-a  --text                  所有文件都以文本方式处理"
 
 #: src/diff3.c:442
-#, fuzzy
 msgid "    --strip-trailing-cr     strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  去除输入内容每行末端的 carriage return 字符。"
+msgstr "    --strip-trailing-cr     去除输入内容每行末端的回车(CR)字符"
 
 #: src/diff3.c:443
-#, fuzzy
 msgid "-T, --initial-tab           make tabs line up by prepending a tab"
-msgstr "-T  --initial-tab  每行先加上 tab 字符,使 tab 字符可以对齐。"
+msgstr "-T  --initial-tab           每行先加上 tab 字符,使 tab 字符可以对齐"
 
 #: src/diff3.c:444
-#, fuzzy
 msgid "    --diff-program=PROGRAM  use PROGRAM to compare files"
-msgstr "--diff-program=程序  用<程序>来比较文件。"
+msgstr "    --diff-program=程序     用<程序>来比较文件"
 
 #: src/diff3.c:445
 msgid ""
@@ -1173,17 +1218,16 @@ msgstr ""
 
 #: src/diff3.c:448
 msgid "    --help                  display this help and exit"
-msgstr ""
+msgstr "    --help                 显示此帮助信息并退出"
 
 #: src/diff3.c:449
-#, fuzzy
 msgid "-v, --version               output version information and exit"
-msgstr "-v  --version  输出版本信息。"
+msgstr "-v, --version               输出版本信息并退出"
 
 #: src/diff3.c:458
 #, c-format
 msgid "Usage: %s [OPTION]... MYFILE OLDFILE YOURFILE\n"
-msgstr "用法:%s [选项]... MYFILE OLDFILE YOURFILE\n"
+msgstr "用法:%s [选项]... 我的文件 旧文件 你的文件\n"
 
 #: src/diff3.c:460
 msgid "Compare three files line by line."
@@ -1224,36 +1268,36 @@ msgstr "内部错误:process_diff 中的 diff 类型无效"
 msgid "invalid diff format; invalid change separator"
 msgstr "无效的 diff 格式;表示内容改变的分隔字符串无效"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "无效的 diff 格式;最后一行不完整"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
-#, fuzzy, c-format
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
+#, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "无法调用辅助程序 “%s”"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "无效的 diff 格式;错误的行前导字符"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "内部错误:传递给输出的 diff 类型无效"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "输入文件缩小"
 
-#: src/dir.c:158
-#, fuzzy, c-format
+#: src/dir.c:156
+#, c-format
 msgid "cannot compare file names '%s' and '%s'"
-msgstr "æ\97 æ³\95æ¯\94è¾\83æ\96\87件å\90\8d â\80\9c%sâ\80\9c å\92\8c â\80\9d%sâ\80\9c"
+msgstr "æ\97 æ³\95æ¯\94è¾\83æ\96\87件å\90\8d â\80\9c%sâ\80\9d å\92\8c â\80\9c%sâ\80\9d"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
-msgstr ""
+msgstr "%s:递归目录循环"
 
 #. This is a proper name. See the gettext manual, section Names.
 #: src/sdiff.c:42
@@ -1261,112 +1305,94 @@ msgid "Thomas Lord"
 msgstr ""
 
 #: src/sdiff.c:173
-#, fuzzy
 msgid ""
 "-o, --output=FILE            operate interactively, sending output to FILE"
-msgstr "-o 文件  --output=文件      交互式操作,并将结果写入至<文件>。"
+msgstr "-o, --output=文件            交互式操作,并将结果写入至<文件>"
 
 #: src/sdiff.c:175
-#, fuzzy
 msgid ""
 "-i, --ignore-case            consider upper- and lower-case to be the same"
-msgstr "-i  --ignore-case  忽略大写和小写的区别。"
+msgstr "-i, --ignore-case            忽略大小写的区别。"
 
 #: src/sdiff.c:176
-#, fuzzy
 msgid "-E, --ignore-tab-expansion   ignore changes due to tab expansion"
-msgstr "-E  --ignore-tab-expansion  å¿½ç\95¥ç\94±å\88¶è¡¨ç¬¦å®½åº¦é\80 æ\88\90ç\9a\84å·®å¼\82ã\80\82"
+msgstr "-E, --ignore-tab-expansion   å¿½ç\95¥ç\94±å\88¶è¡¨ç¬¦å®½åº¦é\80 æ\88\90ç\9a\84å·®å¼\82"
 
 #: src/sdiff.c:177
-#, fuzzy
 msgid "-Z, --ignore-trailing-space  ignore white space at line end"
-msgstr "-w  --ignore-all-space   忽略所有空格。"
+msgstr "-Z, --ignore-trailing-space  忽略行末的空格字符"
 
 #: src/sdiff.c:178
-#, fuzzy
 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ã\80\82"
+msgstr "-b, --ignore-space-change    å¿½ç\95¥ç\94±ç©ºæ ¼æ\95°ä¸\8då\90\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
 
 #: src/sdiff.c:179
-#, fuzzy
 msgid "-W, --ignore-all-space       ignore all white space"
-msgstr "-W  --ignore-all-space      忽略所有空白字符。"
+msgstr "-W, --ignore-all-space       忽略所有空白字符"
 
 #: src/sdiff.c:180
-#, fuzzy
 msgid "-B, --ignore-blank-lines     ignore changes whose lines are all blank"
-msgstr "-B  --ignore-blank-lines  å¿½ç\95¥ä»»ä½\95å\9b ç©ºè¡\8cè\80\8cé\80 æ\88\90ç\9a\84å·®å¼\82ã\80\82"
+msgstr "-B, --ignore-blank-lines     å¿½ç\95¥ä»»ä½\95å\9b ç©ºè¡\8cè\80\8cé\80 æ\88\90ç\9a\84å·®å¼\82"
 
 #: src/sdiff.c:181
-#, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes all whose lines match RE"
 msgstr ""
-"-I RE  --ignore-matching-lines=RE  如果某行匹配正则表达式,则忽略由该行造成的"
-"å·®å¼\82ã\80\82"
+"-I, --ignore-matching-lines=正则 若某行完全匹配 <正则>,则忽略由该行造成的差"
+"å¼\82"
 
 #: src/sdiff.c:182
-#, fuzzy
 msgid "    --strip-trailing-cr      strip trailing carriage return on input"
-msgstr "--strip-trailing-cr  去除输入内容每行末端的 carriage return 字符。"
+msgstr "    --strip-trailing-cr     去除输入内容每行末端的回车(CR)字符"
 
 #: src/sdiff.c:183
-#, fuzzy
 msgid "-a, --text                   treat all files as text"
-msgstr "-a  --text  所有文件都以文本方式处理。"
+msgstr "-a  --text                  所有文件都以文本方式处理"
 
 #: src/sdiff.c:185
-#, fuzzy
 msgid ""
 "-w, --width=NUM              output at most NUM (default 130) print columns"
-msgstr "-w NUM  --width=NUM         每行显示最多 NUM(默认 130)个字符。"
+msgstr "-W, --width=数量              每行显示最多 <数量>(默认 130)个字符"
 
 #: src/sdiff.c:186
-#, fuzzy
 msgid ""
 "-l, --left-column            output only the left column of common lines"
-msgstr "-l  --left-column           当有两行相同时只显示左边的一行。"
+msgstr "-l, --left-column            当有两行相同时只显示左栏的一行"
 
 #: src/sdiff.c:187
-#, fuzzy
 msgid "-s, --suppress-common-lines  do not output common lines"
-msgstr "-s  --suppress-common-lines  当有两行相同时不显示。"
+msgstr "-s, --suppress-common-lines  当有两行相同时不显示"
 
 #: src/sdiff.c:189
-#, fuzzy
 msgid "-t, --expand-tabs            expand tabs to spaces in output"
-msgstr "-t  --expand-tabs  将输出中的 tab 转换成空格。"
+msgstr "-t, --expand-tabs            将输出中的 tab 转换成空格"
 
 #: src/sdiff.c:190
-#, fuzzy
 msgid ""
 "    --tabsize=NUM            tab stops at every NUM (default 8) print columns"
-msgstr "--tabsize=NUM  定位字符 (tab) 的宽度,默认为 8 个空格宽。"
+msgstr "    --tabsize=数字           TAB 格的宽度,默认为 8 个打印列宽"
 
 #: src/sdiff.c:192
-#, fuzzy
 msgid "-d, --minimal                try hard to find a smaller set of changes"
-msgstr "-d  --minimal  尽可能找出最小的差异。"
+msgstr "-d, --minimal                尽可能找出最小的差异集"
 
 #: src/sdiff.c:193
-#, fuzzy
 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:194
-#, fuzzy
 msgid "    --diff-program=PROGRAM   use PROGRAM to compare files"
-msgstr "--diff-program=程序  用<程序>来比较文件。"
+msgstr "    --diff-program=程序      用<程序>来比较文件"
 
 #: src/sdiff.c:196
 msgid "    --help                   display this help and exit"
-msgstr ""
+msgstr "    --help                   显示此帮助信息并退出"
 
 #: src/sdiff.c:197
-#, fuzzy
 msgid "-v, --version                output version information and exit"
-msgstr "-v  --version  输出版本信息。"
+msgstr "-v, --version                输出版本信息并退出"
 
 #: src/sdiff.c:206
 #, c-format
@@ -1374,20 +1400,18 @@ msgid "Usage: %s [OPTION]... FILE1 FILE2\n"
 msgstr "用法:%s [选项]... 文件1 文件2\n"
 
 #: src/sdiff.c:208
-#, fuzzy
 msgid "Side-by-side merge of differences between FILE1 and FILE2."
 msgstr "以并排方式合并文件之间的差异。"
 
 #: src/sdiff.c:329
 msgid "cannot interactively merge standard input"
-msgstr "ä¸\8då\85\81許以交互方式合并标准输入的内容"
+msgstr "ä¸\8då\85\81许以交互方式合并标准输入的内容"
 
 #: src/sdiff.c:595
 msgid "both files to be compared are directories"
 msgstr "两个要被比较的文件都是目录"
 
 #: src/sdiff.c:818
-#, fuzzy
 msgid ""
 "ed:\tEdit then use both versions, each decorated with a header.\n"
 "eb:\tEdit then use both versions.\n"
@@ -1400,16 +1424,26 @@ msgid ""
 "v:\tVerbosely include common lines.\n"
 "q:\tQuit.\n"
 msgstr ""
-"ed:\t编辑兩边的版本合并后的内容,各版本分别加上首部以识别。\n"
-"eb:\t编辑兩边的版本合并后的内容。\n"
-"el:\t使用左边的版本来进行编辑。\n"
-"er:\t使用右边的版本来进行编辑。\n"
-"e :\t编辑新的版本。\n"
-"l :\t使用左边的版本。\n"
-"r :\t使用右边的版本。\n"
-"s :\t加上两边一样的行时不在输出上显示。\n"
-"v :\t加上两边一样的行时会在输出上显示。\n"
-"q :\t退出。\n"
+"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:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s:选项 “--%s” 无法识别\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
 
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s:非法选项 -- %c\n"
index 83f6abb..4476ca4 100644 (file)
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
index b9bae34..be26844 100644 (file)
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: diffutils 2.8.7\n"
 "Report-Msgid-Bugs-To: bug-diffutils@gnu.org\n"
-"POT-Creation-Date: 2013-03-24 11:05-0700\n"
+"POT-Creation-Date: 2016-08-08 10:12-0700\n"
 "PO-Revision-Date: 2005-04-01 14:31+0800\n"
 "Last-Translator: Abel Cheung <maddog@linux.org.hk>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -15,6 +15,21 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: lib/argmatch.c:133
+#, fuzzy, c-format
+msgid "invalid argument %s for %s"
+msgstr "無效的 --bytes 值 ‘%s’"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr ""
+
+#: lib/argmatch.c:153
+#, fuzzy
+msgid "Valid arguments are:"
+msgstr "無效的 --bytes 值 ‘%s’"
+
 #: lib/c-stack.c:204 lib/c-stack.c:297
 msgid "program error"
 msgstr "程式錯誤"
@@ -23,113 +38,166 @@ msgstr "程式錯誤"
 msgid "stack overflow"
 msgstr "堆疊溢位"
 
-#: lib/error.c:188
+#: lib/error.c:191
 msgid "Unknown system error"
 msgstr "不明的系統錯誤"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular empty file"
 msgstr "普通空白檔案"
 
-#: lib/file-type.c:38
+#: lib/file-type.c:40
 msgid "regular file"
 msgstr "普通檔案"
 
-#: lib/file-type.c:41
+#: lib/file-type.c:43
 msgid "directory"
 msgstr "目錄"
 
-#: lib/file-type.c:44
-msgid "block special file"
-msgstr "區塊特殊檔案"
-
-#: lib/file-type.c:47
-msgid "character special file"
-msgstr "字元特殊檔案"
-
-#: lib/file-type.c:50
-msgid "fifo"
-msgstr "fifo"
-
-#: lib/file-type.c:53
+#: lib/file-type.c:46
 msgid "symbolic link"
 msgstr "符號連結"
 
-#: lib/file-type.c:56
-msgid "socket"
-msgstr "socket"
-
-#: lib/file-type.c:59
+#: lib/file-type.c:52
 msgid "message queue"
 msgstr "訊息佇列"
 
-#: lib/file-type.c:62
+#: lib/file-type.c:55
 msgid "semaphore"
 msgstr "semaphore"
 
-#: lib/file-type.c:65
+#: lib/file-type.c:58
 msgid "shared memory object"
 msgstr "分享記憶物件"
 
-#: lib/file-type.c:68
+#: lib/file-type.c:61
 msgid "typed memory object"
 msgstr "分類記憶物件"
 
-#: lib/file-type.c:70
+#: 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
+#, fuzzy
+msgid "multiplexed block special file"
+msgstr "區塊特殊檔案"
+
+#: lib/file-type.c:84
+#, fuzzy
+msgid "multiplexed character special file"
+msgstr "字元特殊檔案"
+
+#: lib/file-type.c:87
+msgid "multiplexed file"
+msgstr ""
+
+#: lib/file-type.c:90
+#, fuzzy
+msgid "named file"
+msgstr "不尋常的檔案"
+
+#: lib/file-type.c:93
+#, fuzzy
+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 "socket"
+
+#: lib/file-type.c:108
+msgid "whiteout"
+msgstr ""
+
+#: lib/file-type.c:110
 msgid "weird file"
 msgstr "不尋常的檔案"
 
-#: lib/getopt.c:547 lib/getopt.c:576
+#: lib/getopt.c:575 lib/getopt.c:604
 #, fuzzy, c-format
 msgid "%s: option '%s' is ambiguous; possibilities:"
 msgstr "%s:選項‘%s’是不明確的\n"
 
-#: lib/getopt.c:624 lib/getopt.c:628
+#: lib/getopt.c:619
+#, fuzzy, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s:選項‘-W %s’是不明確的\n"
+
+#: lib/getopt.c:654 lib/getopt.c:658
 #, fuzzy, c-format
 msgid "%s: option '--%s' doesn't allow an argument\n"
 msgstr "%s:選項‘--%s’不可配合參數使用\n"
 
-#: lib/getopt.c:637 lib/getopt.c:642
+#: lib/getopt.c:667 lib/getopt.c:672
 #, fuzzy, c-format
 msgid "%s: option '%c%s' doesn't allow an argument\n"
 msgstr "%s:選項‘%c%s’不可配合參數使用\n"
 
-#: lib/getopt.c:685 lib/getopt.c:704
+#: lib/getopt.c:715 lib/getopt.c:734
 #, fuzzy, c-format
 msgid "%s: option '--%s' requires an argument\n"
 msgstr "%s:選項‘%s’需要參數\n"
 
-#: lib/getopt.c:742 lib/getopt.c:745
+#: lib/getopt.c:772 lib/getopt.c:775
 #, fuzzy, c-format
 msgid "%s: unrecognized option '--%s'\n"
 msgstr "%s:無法識別的選項‘--%s’\n"
 
-#: lib/getopt.c:753 lib/getopt.c:756
+#: lib/getopt.c:783 lib/getopt.c:786
 #, fuzzy, c-format
 msgid "%s: unrecognized option '%c%s'\n"
 msgstr "%s:無法識別的選項‘%c%s’\n"
 
-#: lib/getopt.c:805 lib/getopt.c:808
+#: lib/getopt.c:835 lib/getopt.c:838
 #, fuzzy, c-format
 msgid "%s: invalid option -- '%c'\n"
 msgstr "%s:無效的選項 ─ %c\n"
 
-#: lib/getopt.c:861 lib/getopt.c:878 lib/getopt.c:1088 lib/getopt.c:1106
+#: lib/getopt.c:891 lib/getopt.c:908 lib/getopt.c:1118 lib/getopt.c:1136
 #, fuzzy, c-format
 msgid "%s: option requires an argument -- '%c'\n"
 msgstr "%s:選項需要參數 ─ %c\n"
 
-#: lib/getopt.c:934 lib/getopt.c:950
+#: lib/getopt.c:964 lib/getopt.c:980
 #, fuzzy, c-format
 msgid "%s: option '-W %s' is ambiguous\n"
 msgstr "%s:選項‘-W %s’是不明確的\n"
 
-#: lib/getopt.c:974 lib/getopt.c:992
+#: lib/getopt.c:1004 lib/getopt.c:1022
 #, fuzzy, c-format
 msgid "%s: option '-W %s' doesn't allow an argument\n"
 msgstr "%s:選項‘-W %s’不可配合參數使用\n"
 
-#: lib/getopt.c:1013 lib/getopt.c:1031
+#: lib/getopt.c:1043 lib/getopt.c:1061
 #, fuzzy, c-format
 msgid "%s: option '-W %s' requires an argument\n"
 msgstr "%s:選項‘%s’需要參數\n"
@@ -155,83 +223,84 @@ msgstr "%s:選項‘%s’需要參數\n"
 #. If you don't know what to put here, please see
 #. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
 #. and use glyphs suitable for your language.
-#: lib/quotearg.c:312
+#: lib/quotearg.c:347
 msgid "`"
 msgstr ""
 
-#: lib/quotearg.c:313
+#: lib/quotearg.c:348
 msgid "'"
 msgstr ""
 
-#: lib/regcomp.c:131
+#: lib/regcomp.c:135
 msgid "Success"
 msgstr "成功"
 
-#: lib/regcomp.c:134
+#: lib/regcomp.c:138
 msgid "No match"
 msgstr "沒有符合的字串"
 
-#: lib/regcomp.c:137
+#: lib/regcomp.c:141
 msgid "Invalid regular expression"
 msgstr "不正確的正規表示式"
 
-#: lib/regcomp.c:140
+#: lib/regcomp.c:144
 msgid "Invalid collation character"
 msgstr "無效的 collation 字元"
 
-#: lib/regcomp.c:143
+#: lib/regcomp.c:147
 msgid "Invalid character class name"
 msgstr "無效的字元種類名稱"
 
-#: lib/regcomp.c:146
+#: lib/regcomp.c:150
 msgid "Trailing backslash"
 msgstr "末端有多餘的反斜號"
 
-#: lib/regcomp.c:149
+#: lib/regcomp.c:153
 msgid "Invalid back reference"
 msgstr "無效的 back reference"
 
-#: lib/regcomp.c:152
-msgid "Unmatched [ or [^"
+#: lib/regcomp.c:156
+#, fuzzy
+msgid "Unmatched [, [^, [:, [., or [="
 msgstr "沒有對應的 [ 或 [^"
 
-#: lib/regcomp.c:155
+#: lib/regcomp.c:159
 msgid "Unmatched ( or \\("
 msgstr "沒有對應的 ( 或 \\("
 
-#: lib/regcomp.c:158
+#: lib/regcomp.c:162
 msgid "Unmatched \\{"
 msgstr "沒有對應的 \\{"
 
-#: lib/regcomp.c:161
+#: lib/regcomp.c:165
 msgid "Invalid content of \\{\\}"
 msgstr "\\{\\} 中的內容無效"
 
-#: lib/regcomp.c:164
+#: lib/regcomp.c:168
 msgid "Invalid range end"
 msgstr "範圍末端字元無效"
 
-#: lib/regcomp.c:167
+#: lib/regcomp.c:171
 msgid "Memory exhausted"
 msgstr "記憶體耗盡"
 
-#: lib/regcomp.c:170
+#: lib/regcomp.c:174
 msgid "Invalid preceding regular expression"
 msgstr "之前的正規表示式無效"
 
-#: lib/regcomp.c:173
+#: lib/regcomp.c:177
 msgid "Premature end of regular expression"
 msgstr "正規表示式過早結束"
 
-#: lib/regcomp.c:176
+#: lib/regcomp.c:180
 msgid "Regular expression too big"
 msgstr "正規表示式過長"
 
-#: lib/regcomp.c:179
+#: lib/regcomp.c:183
 msgid "Unmatched ) or \\)"
 msgstr "沒有對應的 ) 或 \\)"
 
-#: lib/regcomp.c:704
+#: lib/regcomp.c:687
 msgid "No previous regular expression"
 msgstr "之前沒有任何正規表示式"
 
@@ -441,17 +510,17 @@ msgstr ""
 msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
 msgstr ""
 
-#: src/analyze.c:459 src/diff.c:1343
+#: src/analyze.c:454 src/diff.c:1393
 #, c-format
 msgid "Files %s and %s differ\n"
 msgstr "檔案 %s 與 %s 不同\n"
 
-#: src/analyze.c:462
+#: src/analyze.c:455
 #, c-format
 msgid "Binary files %s and %s differ\n"
 msgstr "二元碼檔 %s 與 %s 不同\n"
 
-#: src/analyze.c:713 src/diff3.c:1416 src/util.c:663
+#: src/analyze.c:697 src/diff3.c:1417 src/util.c:1257
 msgid "No newline at end of file"
 msgstr "檔案末沒有 newline 字元"
 
@@ -465,7 +534,7 @@ msgstr "Torbjorn Granlund"
 msgid "David MacKenzie"
 msgstr ""
 
-#: src/cmp.c:118 src/diff.c:839 src/diff3.c:414 src/sdiff.c:158
+#: src/cmp.c:118 src/diff.c:868 src/diff3.c:414 src/sdiff.c:158
 #, fuzzy, c-format
 msgid "Try '%s --help' for more information."
 msgstr "請嘗試‘%s --help’來獲取更多資訊。"
@@ -480,14 +549,12 @@ msgstr "無效的 --ignore-initial 值 ‘%s’"
 msgid "options -l and -s are incompatible"
 msgstr "-l 和 -s 選項不兼容"
 
-#: src/cmp.c:155 src/diff.c:848 src/diff3.c:422 src/sdiff.c:167
-#: src/sdiff.c:315 src/sdiff.c:322 src/sdiff.c:874 src/util.c:278
-#: src/util.c:375 src/util.c:382
+#: src/cmp.c:155 src/diff.c:877 src/diff3.c:422 src/sdiff.c:167 src/sdiff.c:315
+#: src/sdiff.c:322 src/sdiff.c:874 src/util.c:855 src/util.c:955 src/util.c:962
 msgid "write failed"
 msgstr "寫入失敗"
 
-#: src/cmp.c:157 src/diff.c:850 src/diff.c:1408 src/diff3.c:424
-#: src/sdiff.c:169
+#: src/cmp.c:157 src/diff.c:879 src/diff.c:1458 src/diff3.c:424 src/sdiff.c:169
 msgid "standard output"
 msgstr "標準輸出"
 
@@ -548,7 +615,7 @@ msgid ""
 "at the beginning of each file (zero by default)."
 msgstr "SKIP1 和 SKIP2 是每個檔案會略過的位元組數目。"
 
-#: src/cmp.c:185 src/diff.c:956 src/diff3.c:462 src/sdiff.c:210
+#: src/cmp.c:185 src/diff.c:989 src/diff3.c:462 src/sdiff.c:210
 msgid ""
 "Mandatory arguments to long options are mandatory for short options too.\n"
 msgstr ""
@@ -568,7 +635,7 @@ msgstr ""
 msgid "If a FILE is '-' or missing, read standard input."
 msgstr "如果檔案是‘-’或沒有指定,則由標準輸入讀入資料。"
 
-#: src/cmp.c:195 src/diff.c:944 src/sdiff.c:220
+#: src/cmp.c:195 src/diff.c:977 src/sdiff.c:220
 msgid "Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."
 msgstr "如果兩邊內容一樣,回傳值是 0;1 代表兩邊內容不相同,2 代表有錯誤。"
 
@@ -577,27 +644,27 @@ msgstr "如果兩邊內容一樣,回傳值是 0;1 代表兩邊內容不相
 msgid "invalid --bytes value '%s'"
 msgstr "無效的 --bytes 值 ‘%s’"
 
-#: src/cmp.c:266 src/diff.c:757 src/diff3.c:318 src/sdiff.c:565
+#: src/cmp.c:266 src/diff.c:786 src/diff3.c:318 src/sdiff.c:565
 #, fuzzy, c-format
 msgid "missing operand after '%s'"
 msgstr "‘%s’後缺少了參數"
 
-#: src/cmp.c:278 src/diff.c:759 src/diff3.c:320 src/sdiff.c:567
+#: src/cmp.c:278 src/diff.c:788 src/diff3.c:320 src/sdiff.c:567
 #, fuzzy, c-format
 msgid "extra operand '%s'"
 msgstr "多餘的參數‘%s’"
 
-#: src/cmp.c:491
+#: src/cmp.c:494
 #, c-format
 msgid "%s %s differ: byte %s, line %s\n"
 msgstr "%s %s 不同:第 %s 位元組,第 %s 行\n"
 
-#: src/cmp.c:507
+#: src/cmp.c:510
 #, 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:559
+#: src/cmp.c:562
 #, c-format
 msgid "cmp: EOF on %s\n"
 msgstr "cmp:%s 已結束\n"
@@ -627,193 +694,195 @@ msgstr ""
 msgid "Len Tower"
 msgstr ""
 
-#: src/diff.c:339
+#: src/diff.c:351
 #, fuzzy, c-format
 msgid "invalid context length '%s'"
 msgstr "無效的上下文行數‘%s’"
 
-#: src/diff.c:422
+#: src/diff.c:434
 #, c-format
 msgid "pagination not supported on this host"
 msgstr "此系統不支援分頁"
 
-#: src/diff.c:437 src/diff3.c:300
+#: src/diff.c:449 src/diff3.c:300
 #, c-format
 msgid "too many file label options"
 msgstr "太多有關檔案標籤的選項"
 
-#: src/diff.c:514
+#: src/diff.c:526
 #, fuzzy, c-format
 msgid "invalid width '%s'"
 msgstr "無效的寬度‘%s’"
 
-#: src/diff.c:518
+#: src/diff.c:530
 msgid "conflicting width options"
 msgstr "出現互相抵觸的寬度選項"
 
-#: src/diff.c:543
+#: src/diff.c:555
 #, fuzzy, c-format
 msgid "invalid horizon length '%s'"
 msgstr "無效的水平長度 ‘%s’"
 
-#: src/diff.c:598
+#: src/diff.c:611
 #, fuzzy, c-format
 msgid "invalid tabsize '%s'"
 msgstr "無效的定位字元寬度 ‘%s’"
 
-#: src/diff.c:602
+#: src/diff.c:615
 msgid "conflicting tabsize options"
 msgstr "出現互相抵觸的定位字元寬度選項"
 
-#: src/diff.c:734
+#: src/diff.c:763
 msgid "--from-file and --to-file both specified"
 msgstr "同時指定了 --from-file 及 --to-file 選項"
 
-#: src/diff.c:854
+#: src/diff.c:883
 #, fuzzy
 msgid "    --normal                  output a normal diff (the default)"
 msgstr "--normal     以正常的 diff 方式輸出。"
 
-#: src/diff.c:855
+#: src/diff.c:884
 #, fuzzy
 msgid "-q, --brief                   report only when files differ"
 msgstr "-q  --brief  只顯示檔案是否不同。"
 
-#: src/diff.c:856
+#: src/diff.c:885
 #, fuzzy
 msgid "-s, --report-identical-files  report when two files are the same"
 msgstr "-s  --report-identical-files   當兩個檔案一樣時仍然顯示結果。"
 
-#: src/diff.c:857
+#: src/diff.c:886
 msgid ""
 "-c, -C NUM, --context[=NUM]   output NUM (default 3) lines of copied context"
 msgstr ""
 
-#: src/diff.c:858
+#: src/diff.c:887
 #, fuzzy
 msgid ""
 "-u, -U NUM, --unified[=NUM]   output NUM (default 3) lines of unified context"
 msgstr "-w NUM  --width=NUM         每行顯示最多 NUM(預設 130)個字元。"
 
-#: src/diff.c:859
+#: src/diff.c:888
 #, fuzzy
 msgid "-e, --ed                      output an ed script"
 msgstr "-e  --ed     以 ed script 方式輸出。"
 
-#: src/diff.c:860
+#: src/diff.c:889
 #, fuzzy
 msgid "-n, --rcs                     output an RCS format diff"
 msgstr "-n  --rcs    以 RCS diff 格式輸出。"
 
-#: src/diff.c:861
+#: src/diff.c:890
 msgid "-y, --side-by-side            output in two columns"
 msgstr ""
 
-#: src/diff.c:862
+#: src/diff.c:891
 #, fuzzy
 msgid ""
 "-W, --width=NUM               output at most NUM (default 130) print columns"
 msgstr "-w NUM  --width=NUM         每行顯示最多 NUM(預設 130)個字元。"
 
-#: src/diff.c:863
+#: src/diff.c:892
 #, fuzzy
 msgid ""
 "    --left-column             output only the left column of common lines"
 msgstr "-l  --left-column           當有兩行相同時只顯示左邊的一行。"
 
-#: src/diff.c:864
+#: src/diff.c:893
 #, fuzzy
 msgid "    --suppress-common-lines   do not output common lines"
 msgstr "-s  --suppress-common-lines  當有兩行相同時不會顯示。"
 
-#: src/diff.c:866
+#: src/diff.c:895
 msgid "-p, --show-c-function         show which C function each change is in"
 msgstr ""
 
-#: src/diff.c:867
+#: src/diff.c:896
 msgid "-F, --show-function-line=RE   show the most recent line matching RE"
 msgstr ""
 
-#: src/diff.c:868
+#: src/diff.c:897
+#, fuzzy
 msgid ""
-"    --label LABEL             use LABEL instead of file name\n"
+"    --label LABEL             use LABEL instead of file name and timestamp\n"
 "                                (can be repeated)"
 msgstr ""
+"--from-file=FILE1  將 FILE1 和參數中的所有檔案/目錄作比較。FILE1 可以是目錄。"
 
-#: src/diff.c:871
+#: src/diff.c:900
 #, fuzzy
 msgid "-t, --expand-tabs             expand tabs to spaces in output"
 msgstr "-t  --expand-tabs        將輸出中的 tab 換成空格。"
 
-#: src/diff.c:872
+#: src/diff.c:901
 #, fuzzy
 msgid "-T, --initial-tab             make tabs line up by prepending a tab"
 msgstr "-T  --initial-tab        每行先加上 tab 字元,使 tab 字元可以對齊。"
 
-#: src/diff.c:873
+#: src/diff.c:902
 #, fuzzy
 msgid ""
 "    --tabsize=NUM             tab stops every NUM (default 8) print columns"
 msgstr "--tabsize=NUM            定位字元 (tab) 的寬度,預設為 8 個空格。"
 
-#: src/diff.c:874
+#: src/diff.c:903
 msgid ""
 "    --suppress-blank-empty    suppress space or tab before empty output lines"
 msgstr ""
 
-#: src/diff.c:875
+#: src/diff.c:904
 #, fuzzy
 msgid "-l, --paginate                pass output through 'pr' to paginate it"
 msgstr "-l  --paginate           將輸出送至‘pr’指令來分頁。"
 
-#: src/diff.c:877
+#: src/diff.c:906
 #, fuzzy
 msgid ""
 "-r, --recursive                 recursively compare any subdirectories found"
 msgstr "-r  --recursive                連同所有副目錄一起比較。"
 
-#: src/diff.c:878
+#: src/diff.c:907
 msgid "    --no-dereference            don't follow symbolic links"
 msgstr ""
 
-#: src/diff.c:879
+#: src/diff.c:908
 #, fuzzy
 msgid "-N, --new-file                  treat absent files as empty"
 msgstr "-N  --new-file                 不存在的檔案以空白檔案方式處理。"
 
-#: src/diff.c:880
+#: src/diff.c:909
 #, fuzzy
 msgid "    --unidirectional-new-file   treat absent first files as empty"
 msgstr "--unidirectional-new-file      若第一個檔案不存在,以空白檔案處理。"
 
-#: src/diff.c:881
+#: src/diff.c:910
 #, fuzzy
 msgid "    --ignore-file-name-case     ignore case when comparing file names"
 msgstr "--ignore-file-name-case     當比較檔案名稱時不分辨大小寫。"
 
-#: src/diff.c:882
+#: src/diff.c:911
 #, fuzzy
 msgid "    --no-ignore-file-name-case  consider case when comparing file names"
 msgstr "--no-ignore-file-name-case  當比較檔案名稱時會分辨大小寫。"
 
-#: src/diff.c:883
+#: src/diff.c:912
 #, fuzzy
 msgid "-x, --exclude=PAT               exclude files that match PAT"
 msgstr "-x PAT  --exclude=PAT          排除樣式為 PAT 的檔案。"
 
-#: src/diff.c:884
+#: src/diff.c:913
 #, fuzzy
 msgid ""
 "-X, --exclude-from=FILE         exclude files that match any pattern in FILE"
 msgstr "-X FILE  --exclude-from=FILE   排除所有在 FILE 中列出的樣式的檔案。"
 
-#: src/diff.c:885
+#: src/diff.c:914
 #, fuzzy
 msgid ""
 "-S, --starting-file=FILE        start with FILE when comparing directories"
 msgstr "-S FILE  --starting-file=FILE  當比較目錄時,由 FILE 開始比較。"
 
-#: src/diff.c:886
+#: src/diff.c:915
 #, fuzzy
 msgid ""
 "    --from-file=FILE1           compare FILE1 to all operands;\n"
@@ -821,7 +890,7 @@ msgid ""
 msgstr ""
 "--from-file=FILE1  將 FILE1 和參數中的所有檔案/目錄作比較。FILE1 可以是目錄。"
 
-#: src/diff.c:888
+#: src/diff.c:917
 #, fuzzy
 msgid ""
 "    --to-file=FILE2             compare all operands to FILE2;\n"
@@ -829,97 +898,97 @@ msgid ""
 msgstr ""
 "--to-file=FILE2    將參數中的所有檔案/目錄和 FILE2 作比較。FILE2 可以是目錄。"
 
-#: src/diff.c:891
+#: src/diff.c:920
 #, fuzzy
 msgid ""
 "-i, --ignore-case               ignore case differences in file contents"
 msgstr "-i  --ignore-case           不分辨檔案內容中的大小寫。"
 
-#: src/diff.c:892
+#: src/diff.c:921
 #, fuzzy
 msgid "-E, --ignore-tab-expansion      ignore changes due to tab expansion"
 msgstr "-E  --ignore-tab-expansion  忽略因將 tab 轉換為空格而造成的差異。"
 
-#: src/diff.c:893
+#: src/diff.c:922
 #, fuzzy
 msgid "-Z, --ignore-trailing-space     ignore white space at line end"
 msgstr "-w  --ignore-all-space      忽略所有空白字元。"
 
-#: src/diff.c:894
+#: src/diff.c:923
 #, fuzzy
 msgid ""
 "-b, --ignore-space-change       ignore changes in the amount of white space"
 msgstr "-b  --ignore-space-change   忽略因空白字元數目不同而造成的差異。"
 
-#: src/diff.c:895
+#: src/diff.c:924
 #, fuzzy
 msgid "-w, --ignore-all-space          ignore all white space"
 msgstr "-w  --ignore-all-space      忽略所有空白字元。"
 
-#: src/diff.c:896
+#: src/diff.c:925
 #, fuzzy
 msgid ""
 "-B, --ignore-blank-lines        ignore changes where lines are all blank"
 msgstr "-B  --ignore-blank-lines    忽略任何因空行而造成的差異。"
 
-#: src/diff.c:897
+#: src/diff.c:926
 #, fuzzy
 msgid "-I, --ignore-matching-lines=RE  ignore changes where all lines match RE"
 msgstr ""
 "-I RE  --ignore-matching-lines=RE  忽略任何符合指定的<正規表示式>的地方。"
 
-#: src/diff.c:899
+#: src/diff.c:928
 #, fuzzy
 msgid "-a, --text                      treat all files as text"
 msgstr "-a  --text               所有檔案都以文字檔方式處理。"
 
-#: src/diff.c:900
+#: src/diff.c:929
 #, fuzzy
 msgid "    --strip-trailing-cr         strip trailing carriage return on input"
 msgstr "--strip-trailing-cr      去除輸入資料每行末端的 carriage return 字元。"
 
-#: src/diff.c:902
+#: src/diff.c:931
 #, fuzzy
 msgid "    --binary                    read and write data in binary mode"
 msgstr "--binary                 以二元碼檔模式讀寫資料。"
 
-#: src/diff.c:905
+#: src/diff.c:934
 #, fuzzy
 msgid ""
 "-D, --ifdef=NAME                output merged file with '#ifdef NAME' diffs"
 msgstr "-D NAME  --ifdef=NAME      輸出的資料以‘#ifdef NAME’方式標明差異。"
 
-#: src/diff.c:906
+#: src/diff.c:935
 #, fuzzy
 msgid "    --GTYPE-group-format=GFMT   format GTYPE input groups with GFMT"
 msgstr ""
 "--GTYPE-group-format=GFMT  效果類似,但會以 GFMT 格式處理 GTYPE 輸入行組。"
 
-#: src/diff.c:907
+#: src/diff.c:936
 #, fuzzy
 msgid "    --line-format=LFMT          format all input lines with LFMT"
 msgstr "--line-format=LFMT         效果類似,但會以 LFMT 格式處理每一行資料。"
 
-#: src/diff.c:908
+#: src/diff.c:937
 #, fuzzy
 msgid "    --LTYPE-line-format=LFMT    format LTYPE input lines with LFMT"
 msgstr ""
 "--LTYPE-line-format=LFMT   效果類似,但會以 LFMT 格式處理 LTYPE 輸入行組。"
 
-#: src/diff.c:909
+#: src/diff.c:938
 msgid ""
 "  These format options provide fine-grained control over the output\n"
 "    of diff, generalizing -D/--ifdef."
 msgstr ""
 
-#: src/diff.c:911
+#: src/diff.c:940
 #, fuzzy
 msgid "  LTYPE is 'old', 'new', or 'unchanged'.  GTYPE is LTYPE or 'changed'."
 msgstr ""
 "  LTYPE 可以是‘old’、‘new’或‘unchanged’。GTYPE 可以是 LTYPE 的選擇\n"
 "  或是‘changed’。"
 
-#: src/diff.c:912
+#: src/diff.c:941
 #, fuzzy
 msgid ""
 "  GFMT (only) may contain:\n"
@@ -947,7 +1016,7 @@ msgstr ""
 "        E  F-1\n"
 "        M  L+1"
 
-#: src/diff.c:924
+#: src/diff.c:953
 #, fuzzy
 msgid ""
 "  LFMT (only) may contain:\n"
@@ -960,7 +1029,7 @@ msgstr ""
 "    %l  該行的內容,但不包括結束的 newline 字元\n"
 "    %[-][寬度][.[精確度]]{doxX}n  以 printf 格式表示的輸入資料行號"
 
-#: src/diff.c:928
+#: src/diff.c:957
 #, fuzzy
 msgid ""
 "  Both GFMT and LFMT may contain:\n"
@@ -974,101 +1043,126 @@ msgstr ""
 "    %c'C'     字元 C\n"
 "    %c'\\OOO'  八進位數字 OOO 所代表的字元"
 
-#: src/diff.c:934
+#: src/diff.c:963
 #, fuzzy
 msgid "-d, --minimal            try hard to find a smaller set of changes"
 msgstr "-d  --minimal            盡可能找出最小的差異。"
 
-#: src/diff.c:935
+#: src/diff.c:964
 #, fuzzy
 msgid "    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"
 msgstr "--horizon-lines=NUM      (此選項不作處理)"
 
-#: src/diff.c:936
+#: src/diff.c:965
 #, fuzzy
 msgid ""
 "    --speed-large-files  assume large files and many scattered small changes"
 msgstr "-H  --speed-large-files  假設檔案十分大而且當中含有許多些微的差異。"
 
-#: src/diff.c:938
+#: src/diff.c:966
+msgid ""
+"    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"
+msgstr ""
+
+#: src/diff.c:967
+#, fuzzy
+msgid "                           or 'auto' (the default)"
+msgstr "--normal     以正常的 diff 方式輸出。"
+
+#: src/diff.c:968
+msgid ""
+"    --palette=PALETTE    specify the colors to use when --color is active"
+msgstr ""
+
+#: src/diff.c:969
+msgid ""
+"                           PALETTE is a colon-separated list terminfo "
+"capabilities"
+msgstr ""
+
+#: src/diff.c:971
 msgid "    --help               display this help and exit"
 msgstr ""
 
-#: src/diff.c:939
+#: src/diff.c:972
 #, fuzzy
 msgid "-v, --version            output version information and exit"
 msgstr "-v  --version            顯示版本資訊。"
 
-#: src/diff.c:941
+#: src/diff.c:974
 #, fuzzy
-msgid ""
-"FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."
+msgid "FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."
 msgstr ""
 "FILES 的格式可以是‘FILE1 FILE2’、‘DIR1 DIR2’、‘DIR FILE...’或\n"
 "    ‘FILE... DIR’。"
 
-#: src/diff.c:942
+#: src/diff.c:975
 #, fuzzy
 msgid ""
 "If --from-file or --to-file is given, there are no restrictions on FILE(s)."
 msgstr "如果使用 --from-file 或 --to-file 選項,FILES 的格式則不受限制。"
 
-#: src/diff.c:943 src/diff3.c:481 src/sdiff.c:219
+#: src/diff.c:976 src/diff3.c:481 src/sdiff.c:219
 #, fuzzy
 msgid "If a FILE is '-', read standard input."
 msgstr "如果 FILE 是‘-’,則由標準輸入讀取資料。"
 
 # It is intentional *not* to translate FILES -- maddog
-#: src/diff.c:953
+#: src/diff.c:986
 #, c-format
 msgid "Usage: %s [OPTION]... FILES\n"
 msgstr "用法:%s [選項]... FILES\n"
 
-#: src/diff.c:954
+#: src/diff.c:987
 #, fuzzy
 msgid "Compare FILES line by line."
 msgstr "比較兩個檔案的每一行。"
 
-#: src/diff.c:988
+#: src/diff.c:1021
 #, fuzzy, c-format
 msgid "conflicting %s option value '%s'"
 msgstr "互相矛盾的 %s 選項,參數值為‘%s’"
 
-#: src/diff.c:1001
+#: src/diff.c:1034
 #, c-format
 msgid "conflicting output style options"
 msgstr "互相矛盾的輸出模式選項"
 
-#: src/diff.c:1058 src/diff.c:1268
+#: src/diff.c:1050
+#, fuzzy, c-format
+msgid "invalid color '%s'"
+msgstr "無效的寬度‘%s’"
+
+#: src/diff.c:1106 src/diff.c:1316
 #, c-format
 msgid "Only in %s: %s\n"
 msgstr "只在 %s 存在:%s\n"
 
-#: src/diff.c:1192
+#: src/diff.c:1240
 #, fuzzy
 msgid "cannot compare '-' to a directory"
 msgstr "‘-’無法與目錄作比較"
 
-#: src/diff.c:1227
+#: src/diff.c:1275
 msgid "-D option not supported with directories"
 msgstr "-D 選項不可配合目錄使用"
 
-#: src/diff.c:1236
+#: src/diff.c:1284
 #, c-format
 msgid "Common subdirectories: %s and %s\n"
 msgstr "%s 和 %s 有共同的副目錄\n"
 
-#: src/diff.c:1278 src/diff.c:1328
+#: src/diff.c:1326 src/diff.c:1376
 #, c-format
 msgid "File %s is a %s while file %s is a %s\n"
 msgstr "檔案 %s 是%s而檔案 %s 是%s\n"
 
-#: src/diff.c:1314
+#: src/diff.c:1362
 #, fuzzy, c-format
 msgid "Symbolic links %s and %s differ\n"
 msgstr "檔案 %s 與 %s 不同\n"
 
-#: src/diff.c:1399
+#: src/diff.c:1449
 #, c-format
 msgid "Files %s and %s are identical\n"
 msgstr "檔案 %s 和 %s 相同\n"
@@ -1088,7 +1182,7 @@ msgstr "不兼容的選項"
 msgid "'-' specified for more than one input file"
 msgstr "輸入檔‘-’不可多於一個"
 
-#: src/diff3.c:395 src/diff3.c:1241 src/diff3.c:1645 src/diff3.c:1700
+#: src/diff3.c:395 src/diff3.c:1242 src/diff3.c:1646 src/diff3.c:1701
 #: src/sdiff.c:307 src/sdiff.c:844 src/sdiff.c:855
 msgid "read failed"
 msgstr "讀取資料失敗"
@@ -1219,33 +1313,33 @@ msgstr "內部錯誤:process_diff 中的 diff 類型無效"
 msgid "invalid diff format; invalid change separator"
 msgstr "無效的 diff 格式;表示資料變更的分隔字串無效"
 
-#: src/diff3.c:1251
+#: src/diff3.c:1252
 msgid "invalid diff format; incomplete last line"
 msgstr "無效的 diff 格式;最後一行不完整"
 
-#: src/diff3.c:1275 src/sdiff.c:275 src/util.c:392
+#: src/diff3.c:1276 src/sdiff.c:275 src/util.c:972
 #, fuzzy, c-format
 msgid "subsidiary program '%s' could not be invoked"
 msgstr "子程式 ‘%s’ 無法執行"
 
-#: src/diff3.c:1300
+#: src/diff3.c:1301
 msgid "invalid diff format; incorrect leading line chars"
 msgstr "diff 格式無效;某行的第一個字元不正確"
 
-#: src/diff3.c:1373
+#: src/diff3.c:1374
 msgid "internal error: invalid diff type passed to output"
 msgstr "內部錯誤:準備輸出的 diff 資料類型無效"
 
-#: src/diff3.c:1647 src/diff3.c:1704
+#: src/diff3.c:1648 src/diff3.c:1705
 msgid "input file shrank"
 msgstr "輸入檔縮小"
 
-#: src/dir.c:158
+#: src/dir.c:156
 #, fuzzy, c-format
 msgid "cannot compare file names '%s' and '%s'"
 msgstr "無法比較檔案 ‘%s’ 和 ‘%s’"
 
-#: src/dir.c:209
+#: src/dir.c:225
 #, c-format
 msgid "%s: recursive directory loop"
 msgstr ""
@@ -1405,6 +1499,16 @@ msgstr ""
 "v :\t加上兩邊一樣的行組時會在畫面顯示。\n"
 "q :\t離開。\n"
 
+#: src/util.c:665
+#, fuzzy, c-format
+msgid "unrecognized prefix: %s"
+msgstr "%s:無法識別的選項‘--%s’\n"
+
+#: src/util.c:695
+#, c-format
+msgid "unparsable value for --palette"
+msgstr ""
+
 #~ msgid "%s: illegal option -- %c\n"
 #~ msgstr "%s:不合法的選項 ─ %c\n"
 
index 99fbfcc..167f7fd 100644 (file)
@@ -1,6 +1,7 @@
 # Automakefile for GNU diffutils programs.
 
-# Copyright (C) 2001-2002, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2016 Free Software Foundation,
+# Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
index 044d927..a0f1c99 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 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,8 @@
 
 # Automakefile for GNU diffutils programs.
 
-# Copyright (C) 2001-2002, 2006, 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2002, 2006, 2009-2013, 2015-2016 Free Software Foundation,
+# Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -71,15 +110,14 @@ host_triplet = @host@
 bin_PROGRAMS = cmp$(EXEEXT) diff$(EXEEXT) diff3$(EXEEXT) \
        sdiff$(EXEEXT)
 subdir = src
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -87,9 +125,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -98,14 +137,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -121,36 +161,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -163,6 +212,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+       $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/lib/config.h
 CONFIG_CLEAN_FILES =
@@ -211,10 +262,17 @@ am__v_at_0 = @
 am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/lib
 depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
-am__depfiles_maybe = depfiles
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ./$(DEPDIR)/analyze.Po ./$(DEPDIR)/cmp.Po \
+       ./$(DEPDIR)/context.Po ./$(DEPDIR)/diff.Po \
+       ./$(DEPDIR)/diff3.Po ./$(DEPDIR)/dir.Po ./$(DEPDIR)/ed.Po \
+       ./$(DEPDIR)/ifdef.Po ./$(DEPDIR)/io.Po ./$(DEPDIR)/normal.Po \
+       ./$(DEPDIR)/sdiff.Po ./$(DEPDIR)/side.Po ./$(DEPDIR)/util.Po \
+       ./$(DEPDIR)/version.Po
 am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CFLAGS) $(CFLAGS)
+am__set_depbase = depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.[^.]*$$||'`
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 AM_V_CC = $(am__v_CC_@AM_V@)
 am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
 am__v_CC_0 = @echo "  CC      " $@;
@@ -254,6 +312,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+       $(top_srcdir)/build-aux/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -301,13 +361,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -361,6 +425,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -370,13 +437,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -432,6 +504,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -440,6 +513,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -449,6 +523,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -456,14 +532,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -495,6 +577,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -557,6 +640,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -576,6 +661,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -629,6 +716,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -643,6 +731,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -663,6 +752,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -673,6 +763,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -687,6 +778,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -713,17 +805,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -771,6 +870,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -779,6 +879,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -798,11 +899,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -819,6 +923,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -827,6 +935,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -835,14 +944,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -851,6 +965,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -859,9 +974,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -914,14 +1033,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -930,6 +1054,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -958,21 +1083,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -995,9 +1124,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1021,21 +1152,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1054,6 +1190,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1091,11 +1228,13 @@ lispdir = @lispdir@
 localedir = $(datadir)/locale
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1151,14 +1290,13 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu src/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -1172,6 +1310,7 @@ $(am__aclocal_m4_deps):
 
 clean-noinstLIBRARIES:
        -test -z "$(noinst_LIBRARIES)" || 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)
@@ -1218,15 +1357,19 @@ uninstall-binPROGRAMS:
 
 clean-binPROGRAMS:
        -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
 cmp$(EXEEXT): $(cmp_OBJECTS) $(cmp_DEPENDENCIES) $(EXTRA_cmp_DEPENDENCIES) 
        @rm -f cmp$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(cmp_OBJECTS) $(cmp_LDADD) $(LIBS)
+
 diff$(EXEEXT): $(diff_OBJECTS) $(diff_DEPENDENCIES) $(EXTRA_diff_DEPENDENCIES) 
        @rm -f diff$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(diff_OBJECTS) $(diff_LDADD) $(LIBS)
+
 diff3$(EXEEXT): $(diff3_OBJECTS) $(diff3_DEPENDENCIES) $(EXTRA_diff3_DEPENDENCIES) 
        @rm -f diff3$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(diff3_OBJECTS) $(diff3_LDADD) $(LIBS)
+
 sdiff$(EXEEXT): $(sdiff_OBJECTS) $(sdiff_DEPENDENCIES) $(EXTRA_sdiff_DEPENDENCIES) 
        @rm -f sdiff$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(sdiff_OBJECTS) $(sdiff_LDADD) $(LIBS)
@@ -1237,34 +1380,44 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/analyze.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmp.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff3.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ed.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ifdef.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normal.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdiff.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/side.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/analyze.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/context.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diff3.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ed.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ifdef.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/normal.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sdiff.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/side.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+       @$(MKDIR_P) $(@D)
+       @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
 
 .c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $<; \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@  $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(am__set_depbase) && \
+@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@  $$($(CYGPATH_W) $<); \
+@am__fastdepCC_TRUE@   if test $$? = 0; then $(am__mv) $$depbase.Tpo $$depbase.Po; \
+@am__fastdepCC_TRUE@     else rm -f $$depbase.Tpo; false; fi
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+@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
@@ -1397,7 +1550,20 @@ clean-am: clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
        mostlyclean-am
 
 distclean: distclean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/analyze.Po
+       -rm -f ./$(DEPDIR)/cmp.Po
+       -rm -f ./$(DEPDIR)/context.Po
+       -rm -f ./$(DEPDIR)/diff.Po
+       -rm -f ./$(DEPDIR)/diff3.Po
+       -rm -f ./$(DEPDIR)/dir.Po
+       -rm -f ./$(DEPDIR)/ed.Po
+       -rm -f ./$(DEPDIR)/ifdef.Po
+       -rm -f ./$(DEPDIR)/io.Po
+       -rm -f ./$(DEPDIR)/normal.Po
+       -rm -f ./$(DEPDIR)/sdiff.Po
+       -rm -f ./$(DEPDIR)/side.Po
+       -rm -f ./$(DEPDIR)/util.Po
+       -rm -f ./$(DEPDIR)/version.Po
        -rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
        distclean-tags
@@ -1443,7 +1609,20 @@ install-ps-am:
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
-       -rm -rf ./$(DEPDIR)
+               -rm -f ./$(DEPDIR)/analyze.Po
+       -rm -f ./$(DEPDIR)/cmp.Po
+       -rm -f ./$(DEPDIR)/context.Po
+       -rm -f ./$(DEPDIR)/diff.Po
+       -rm -f ./$(DEPDIR)/diff3.Po
+       -rm -f ./$(DEPDIR)/dir.Po
+       -rm -f ./$(DEPDIR)/ed.Po
+       -rm -f ./$(DEPDIR)/ifdef.Po
+       -rm -f ./$(DEPDIR)/io.Po
+       -rm -f ./$(DEPDIR)/normal.Po
+       -rm -f ./$(DEPDIR)/sdiff.Po
+       -rm -f ./$(DEPDIR)/side.Po
+       -rm -f ./$(DEPDIR)/util.Po
+       -rm -f ./$(DEPDIR)/version.Po
        -rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -1463,7 +1642,7 @@ uninstall-am: uninstall-binPROGRAMS
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
        clean-binPROGRAMS clean-generic clean-noinstLIBRARIES \
        cscopelist-am ctags ctags-am distclean distclean-compile \
        distclean-generic distclean-tags distdir dvi dvi-am html \
@@ -1477,6 +1656,8 @@ uninstall-am: uninstall-binPROGRAMS
        mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
        uninstall-am uninstall-binPROGRAMS
 
+.PRECIOUS: Makefile
+
 
 cmp.$(OBJEXT) diff3.$(OBJEXT) diff.$(OBJEXT) sdiff.$(OBJEXT): paths.h
 paths.h: Makefile.am
index 9dc9347..3981872 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 Free Software Foundation, Inc.
+   2009-2013, 2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -445,26 +445,16 @@ build_script (struct file_data const filevec[])
   return script;
 }
 \f
-/* If CHANGES, briefly report that two files differed.
-   Return 2 if trouble, CHANGES otherwise.  */
-static int
+/* If CHANGES, briefly report that two files differed.  */
+static void
 briefly_report (int changes, struct file_data const filevec[])
 {
   if (changes)
-    {
-      char const *label0 = file_label[0] ? file_label[0] : filevec[0].name;
-      char const *label1 = file_label[1] ? file_label[1] : filevec[1].name;
-
-      if (brief)
-       message ("Files %s and %s differ\n", label0, label1);
-      else
-       {
-         message ("Binary files %s and %s differ\n", label0, label1);
-         changes = 2;
-       }
-    }
-
-  return changes;
+    message ((brief
+             ? _("Files %s and %s differ\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);
 }
 
 /* Report the differences of two files.  */
@@ -487,6 +477,8 @@ diff_2_files (struct comparison *cmp)
     {
       /* Files with different lengths must be different.  */
       if (cmp->file[0].stat.st_size != cmp->file[1].stat.st_size
+         && 0 < cmp->file[0].stat.st_size
+         && 0 < cmp->file[1].stat.st_size
          && (cmp->file[0].desc < 0 || S_ISREG (cmp->file[0].stat.st_mode))
          && (cmp->file[1].desc < 0 || S_ISREG (cmp->file[1].stat.st_mode)))
        changes = 1;
@@ -536,13 +528,12 @@ diff_2_files (struct comparison *cmp)
            }
        }
 
-      changes = briefly_report (changes, cmp->file);
+      briefly_report (changes, cmp->file);
     }
   else
     {
       struct context ctxt;
       lin diags;
-      lin too_expensive;
 
       /* Allocate vectors for the results of comparison:
         a flag for each line of each file, saying whether that line
@@ -574,18 +565,11 @@ diff_2_files (struct comparison *cmp)
 
       ctxt.heuristic = speed_large_files;
 
-      /* Set TOO_EXPENSIVE to be approximate square root of input size,
-        bounded below by 256.  */
-      too_expensive = 1;
-      for (;  diags != 0;  diags >>= 2)
-       too_expensive <<= 1;
-      ctxt.too_expensive = MAX (256, too_expensive);
-
       files[0] = cmp->file[0];
       files[1] = cmp->file[1];
 
       compareseq (0, cmp->file[0].nondiscarded_lines,
-                 0, cmp->file[1].nondiscarded_lines, minimal, &ctxt);
+                 0, cmp->file[1].nondiscarded_lines, &ctxt);
 
       free (ctxt.fdiag - (cmp->file[1].nondiscarded_lines + 1));
 
@@ -635,7 +619,7 @@ diff_2_files (struct comparison *cmp)
        changes = (script != 0);
 
       if (brief)
-       changes = briefly_report (changes, cmp->file);
+       briefly_report (changes, cmp->file);
       else
        {
          if (changes || !no_diff_means_no_output)
index 97473c9..ba5553b 100644 (file)
--- a/src/cmp.c
+++ b/src/cmp.c
@@ -1,7 +1,7 @@
 /* cmp - compare two files byte by byte
 
-   Copyright (C) 1990-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013 Free
-   Software Foundation, Inc.
+   Copyright (C) 1990-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@
 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_and_count (word const *, word const *, off_t *);
+static size_t count_newlines (char *, size_t);
 static void sprintc (char *, unsigned char);
 
 /* Filenames of the compared files.  */
@@ -448,20 +448,23 @@ cmp (void)
       if (read1 == SIZE_MAX)
        error (EXIT_TROUBLE, errno, "%s", file[1]);
 
-      /* Insert sentinels for the block compare.  */
+      smaller = MIN (read0, read1);
 
-      buf0[read0] = ~buf1[read0];
-      buf1[read1] = ~buf0[read1];
+      /* Optimize the common case where the buffers are the same.  */
+      if (memcmp (buf0, buf1, smaller) == 0)
+       first_diff = smaller;
+      else
+       {
+         /* Insert sentinels for the block compare.  */
+         buf0[read0] = ~buf1[read0];
+         buf1[read1] = ~buf0[read1];
 
-      /* If the line number should be written for differing files,
-        compare the blocks and count the number of newlines
-        simultaneously.  */
-      first_diff = (comparison_type == type_first_diff
-                   ? block_compare_and_count (buffer0, buffer1, &line_number)
-                   : block_compare (buffer0, buffer1));
+         first_diff = block_compare (buffer0, buffer1);
+       }
 
       byte_number += first_diff;
-      smaller = MIN (read0, read1);
+      if (comparison_type == type_first_diff)
+       line_number += count_newlines (buf0, first_diff);
 
       if (first_diff < smaller)
        {
@@ -567,54 +570,6 @@ cmp (void)
   return differing == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
 }
 \f
-/* Compare two blocks of memory P0 and P1 until they differ,
-   and count the number of '\n' occurrences in the common
-   part of P0 and P1.
-   If the blocks are not guaranteed to be different, put sentinels at the ends
-   of the blocks before calling this function.
-
-   Return the offset of the first byte that differs.
-   Increment *COUNT by the count of '\n' occurrences.  */
-
-static size_t
-block_compare_and_count (word const *p0, word const *p1, off_t *count)
-{
-  word l;              /* One word from first buffer. */
-  word const *l0, *l1; /* Pointers into each buffer. */
-  char const *c0, *c1; /* Pointers for finding exact address. */
-  size_t cnt = 0;      /* Number of '\n' occurrences. */
-  word nnnn;           /* Newline, sizeof (word) times.  */
-  int i;
-
-  nnnn = 0;
-  for (i = 0; i < sizeof nnnn; i++)
-    nnnn = (nnnn << CHAR_BIT) | '\n';
-
-  /* Find the rough position of the first difference by reading words,
-     not bytes.  */
-
-  for (l0 = p0, l1 = p1;  (l = *l0) == *l1;  l0++, l1++)
-    {
-      l ^= nnnn;
-      for (i = 0; i < sizeof l; i++)
-       {
-         unsigned char uc = l;
-         cnt += ! uc;
-         l >>= CHAR_BIT;
-       }
-    }
-
-  /* Find the exact differing position (endianness independent).  */
-
-  for (c0 = (char const *) l0, c1 = (char const *) l1;
-       *c0 == *c1;
-       c0++, c1++)
-    cnt += *c0 == '\n';
-
-  *count += cnt;
-  return c0 - (char const *) p0;
-}
-\f
 /* Compare two blocks of memory P0 and P1 until they differ.
    If the blocks are not guaranteed to be different, put sentinels at the ends
    of the blocks before calling this function.
@@ -643,6 +598,21 @@ block_compare (word const *p0, word const *p1)
   return c0 - (char const *) p0;
 }
 
+/* Return the number of newlines in BUF, of size BUFSIZE,
+   where BUF[NBYTES] is available for use as a sentinel.  */
+
+static size_t
+count_newlines (char *buf, size_t bufsize)
+{
+  size_t count = 0;
+  char *p;
+  char *lim = buf + bufsize;
+  *lim = '\n';
+  for (p = buf; (p = rawmemchr (p, '\n')) != lim; p++)
+    count++;
+  return count;
+}
+
 /* Put into BUF the unsigned char C, making unprintable bytes
    visible by quoting like cat -t does.  */
 
index dd79f89..1a92a60 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
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -80,6 +80,7 @@ print_context_label (char const *mark,
 void
 print_context_header (struct file_data inf[], char const *const *names, bool unidiff)
 {
+  set_color_context (HEADER_CONTEXT);
   if (unidiff)
     {
       print_context_label ("---", &inf[0], names[0], file_label[0]);
@@ -90,6 +91,7 @@ print_context_header (struct file_data inf[], char const *const *names, bool uni
       print_context_label ("***", &inf[0], names[0], file_label[0]);
       print_context_label ("---", &inf[1], names[1], file_label[1]);
     }
+  set_color_context (RESET_CONTEXT);
 }
 
 /* Print an edit script in context format.  */
@@ -205,14 +207,21 @@ pr_context_hunk (struct change *hunk)
   if (function)
     print_context_function (out, function);
 
-  fputs ("\n*** ", out);
+  putc ('\n', out);
+  set_color_context (LINE_NUMBER_CONTEXT);
+  fputs ("*** ", out);
   print_context_number_range (&files[0], first0, last0);
-  fputs (" ****\n", out);
+  fputs (" ****", out);
+  set_color_context (RESET_CONTEXT);
+  putc ('\n', out);
 
   if (changes & OLD)
     {
       struct change *next = hunk;
 
+      if (first0 <= last0)
+        set_color_context (DELETE_CONTEXT);
+
       for (i = first0; i <= last0; i++)
        {
          /* Skip past changes that apply (in file 0)
@@ -225,23 +234,34 @@ pr_context_hunk (struct change *hunk)
 
          prefix = " ";
          if (next && next->line0 <= i)
-           /* The change NEXT covers this line.
-              If lines were inserted here in file 1, this is "changed".
-              Otherwise it is "deleted".  */
-           prefix = (next->inserted > 0 ? "!" : "-");
-
-         print_1_line (prefix, &files[0].linbuf[i]);
+            {
+              /* The change NEXT covers this line.
+                 If lines were inserted here in file 1, this is "changed".
+                 Otherwise it is "deleted".  */
+              prefix = (next->inserted > 0 ? "!" : "-");
+            }
+         print_1_line_nl (prefix, &files[0].linbuf[i], true);
+          if (i == last0)
+            set_color_context (RESET_CONTEXT);
+          if (files[0].linbuf[i + 1][-1] == '\n')
+            putc ('\n', out);
        }
     }
 
+  set_color_context (LINE_NUMBER_CONTEXT);
   fputs ("--- ", out);
   print_context_number_range (&files[1], first1, last1);
-  fputs (" ----\n", out);
+  fputs (" ----", out);
+  set_color_context (RESET_CONTEXT);
+  putc ('\n', out);
 
   if (changes & NEW)
     {
       struct change *next = hunk;
 
+      if (first1 <= last1)
+        set_color_context (ADD_CONTEXT);
+
       for (i = first1; i <= last1; i++)
        {
          /* Skip past changes that apply (in file 1)
@@ -254,12 +274,17 @@ pr_context_hunk (struct change *hunk)
 
          prefix = " ";
          if (next && next->line1 <= i)
-           /* The change NEXT covers this line.
-              If lines were deleted here in file 0, this is "changed".
-              Otherwise it is "inserted".  */
-           prefix = (next->deleted > 0 ? "!" : "+");
-
-         print_1_line (prefix, &files[1].linbuf[i]);
+            {
+              /* The change NEXT covers this line.
+                 If lines were deleted here in file 0, this is "changed".
+                 Otherwise it is "inserted".  */
+              prefix = (next->deleted > 0 ? "!" : "+");
+            }
+         print_1_line_nl (prefix, &files[1].linbuf[i], true);
+          if (i == last1)
+            set_color_context (RESET_CONTEXT);
+          if (files[1].linbuf[i + 1][-1] == '\n')
+            putc ('\n', out);
        }
     }
 }
@@ -330,11 +355,13 @@ pr_unidiff_hunk (struct change *hunk)
   begin_output ();
   out = outfile;
 
+  set_color_context (LINE_NUMBER_CONTEXT);
   fputs ("@@ -", out);
   print_unidiff_number_range (&files[0], first0, last0);
   fputs (" +", out);
   print_unidiff_number_range (&files[1], first1, last1);
   fputs (" @@", out);
+  set_color_context (RESET_CONTEXT);
 
   if (function)
     print_context_function (out, function);
@@ -363,25 +390,43 @@ pr_unidiff_hunk (struct change *hunk)
          /* For each difference, first output the deleted part. */
 
          k = next->deleted;
+          if (k)
+            set_color_context (DELETE_CONTEXT);
+
          while (k--)
            {
              char const * const *line = &files[0].linbuf[i++];
              putc ('-', out);
              if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
                putc ('\t', out);
-             print_1_line (NULL, line);
+             print_1_line_nl (NULL, line, true);
+
+              if (!k)
+                set_color_context (RESET_CONTEXT);
+
+              if (line[1][-1] == '\n')
+                putc ('\n', out);
            }
 
          /* Then output the inserted part. */
 
          k = next->inserted;
-         while (k--)
+          if (k)
+            set_color_context (ADD_CONTEXT);
+
+          while (k--)
            {
              char const * const *line = &files[1].linbuf[j++];
              putc ('+', out);
              if (initial_tab && ! (suppress_blank_empty && **line == '\n'))
                putc ('\t', out);
-             print_1_line (NULL, line);
+             print_1_line_nl (NULL, line, true);
+
+              if (!k)
+                set_color_context (RESET_CONTEXT);
+
+              if (line[1][-1] == '\n')
+                putc ('\n', out);
            }
 
          /* We're done with this hunk, so on to the next! */
@@ -402,12 +447,11 @@ find_hunk (struct change *start)
   lin top0, top1;
   lin thresh;
 
-  /* Threshold distance is 2 * CONTEXT + 1 between two non-ignorable
-     changes, but only CONTEXT if one is ignorable.  Watch out for
-     integer overflow, though.  */
-  lin non_ignorable_threshold =
-    (LIN_MAX - 1) / 2 < context ? LIN_MAX : 2 * context + 1;
+  /* Threshold distance is CONTEXT if the second change is ignorable,
+     2 * CONTEXT + 1 otherwise.  Integer overflow can't happen, due
+     to CONTEXT_LIM.  */
   lin ignorable_threshold = context;
+  lin non_ignorable_threshold = 2 * context + 1;
 
   do
     {
@@ -416,7 +460,7 @@ find_hunk (struct change *start)
       top1 = start->line1 + start->inserted;
       prev = start;
       start = start->link;
-      thresh = (prev->ignore || (start && start->ignore)
+      thresh = (start && start->ignore
                ? ignorable_threshold
                : non_ignorable_threshold);
       /* It is not supposed to matter which file we check in the end-test.
index 50d0365..9bc1d96 100644 (file)
@@ -1,7 +1,7 @@
 /* diff - compare files line by line
 
    Copyright (C) 1988-1989, 1992-1994, 1996, 1998, 2001-2002, 2004, 2006-2007,
-   2009-2013 Free Software Foundation, Inc.
+   2009-2013, 2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -70,6 +70,7 @@ static void add_regexp (struct regexp_list *, char const *);
 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 void check_stdout (void);
 static void usage (void);
@@ -136,7 +137,12 @@ enum
   UNCHANGED_GROUP_FORMAT_OPTION,
   OLD_GROUP_FORMAT_OPTION,
   NEW_GROUP_FORMAT_OPTION,
-  CHANGED_GROUP_FORMAT_OPTION
+  CHANGED_GROUP_FORMAT_OPTION,
+
+  COLOR_OPTION,
+  COLOR_PALETTE_OPTION,
+
+  PRESUME_OUTPUT_TTY_OPTION,
 };
 
 static char const group_format_option[][sizeof "--unchanged-group-format"] =
@@ -159,6 +165,7 @@ static struct option const longopts[] =
   {"binary", 0, 0, BINARY_OPTION},
   {"brief", 0, 0, 'q'},
   {"changed-group-format", 1, 0, CHANGED_GROUP_FORMAT_OPTION},
+  {"color", 2, 0, COLOR_OPTION},
   {"context", 2, 0, 'C'},
   {"ed", 0, 0, 'e'},
   {"exclude", 1, 0, 'x'},
@@ -192,6 +199,7 @@ static struct option const longopts[] =
   {"old-group-format", 1, 0, OLD_GROUP_FORMAT_OPTION},
   {"old-line-format", 1, 0, OLD_LINE_FORMAT_OPTION},
   {"paginate", 0, 0, 'l'},
+  {"palette", 1, 0, COLOR_PALETTE_OPTION},
   {"rcs", 0, 0, 'n'},
   {"recursive", 0, 0, 'r'},
   {"report-identical-files", 0, 0, 's'},
@@ -213,6 +221,9 @@ static struct option const longopts[] =
   {"unified", 2, 0, 'U'},
   {"version", 0, 0, 'v'},
   {"width", 1, 0, 'W'},
+
+  /* This is solely for testing.  Do not document.  */
+  {"-presume-output-tty", no_argument, NULL, PRESUME_OUTPUT_TTY_OPTION},
   {0, 0, 0, 0}
 };
 
@@ -304,11 +315,12 @@ main (int argc, char **argv)
        case '7':
        case '8':
        case '9':
-         if (! ISDIGIT (prev))
-           ocontext = c - '0';
-         else if (LIN_MAX / 10 < ocontext
-                  || ((ocontext = 10 * ocontext + c - '0') < 0))
-           ocontext = LIN_MAX;
+         ocontext = (! ISDIGIT (prev)
+                     ? c - '0'
+                     : (ocontext - (c - '0' <= CONTEXT_MAX % 10)
+                        < CONTEXT_MAX / 10)
+                     ? 10 * ocontext + (c - '0')
+                     : CONTEXT_MAX);
          break;
 
        case 'a':
@@ -337,8 +349,8 @@ main (int argc, char **argv)
                numval = strtoumax (optarg, &numend, 10);
                if (*numend)
                  try_help ("invalid context length '%s'", optarg);
-               if (LIN_MAX < numval)
-                 numval = LIN_MAX;
+               if (CONTEXT_MAX < numval)
+                 numval = CONTEXT_MAX;
              }
            else
              numval = 3;
@@ -594,7 +606,8 @@ main (int argc, char **argv)
 
        case TABSIZE_OPTION:
          numval = strtoumax (optarg, &numend, 10);
-         if (! (0 < numval && numval <= SIZE_MAX) || *numend)
+         if (! (0 < numval && numval <= SIZE_MAX - GUTTER_WIDTH_MINIMUM)
+             || *numend)
            try_help ("invalid tabsize '%s'", optarg);
          if (tabsize != numval)
            {
@@ -625,6 +638,18 @@ main (int argc, char **argv)
          specify_value (&group_format[c], optarg, group_format_option[c]);
          break;
 
+       case COLOR_OPTION:
+         specify_colors_style (optarg);
+         break;
+
+       case COLOR_PALETTE_OPTION:
+         set_color_palette (optarg);
+         break;
+
+        case PRESUME_OUTPUT_TTY_OPTION:
+          presume_output_tty = true;
+          break;
+
        default:
          try_help (NULL, NULL);
        }
@@ -681,10 +706,14 @@ main (int argc, char **argv)
                a half line plus a gutter is an integral number of tabs,
                so that tabs in the right column line up.  */
 
-    intmax_t t = expand_tabs ? 1 : tabsize;
-    intmax_t w = width;
-    intmax_t off = (w + t + GUTTER_WIDTH_MINIMUM) / (2 * t)  *  t;
-    sdiff_half_width = MAX (0, MIN (off - GUTTER_WIDTH_MINIMUM, w - off)),
+    size_t t = expand_tabs ? 1 : tabsize;
+    size_t w = width;
+    size_t t_plus_g = t + GUTTER_WIDTH_MINIMUM;
+    size_t unaligned_off = (w >> 1) + (t_plus_g >> 1) + (w & t_plus_g & 1);
+    size_t off = unaligned_off - unaligned_off % t;
+    sdiff_half_width = (off <= GUTTER_WIDTH_MINIMUM || w <= off
+                       ? 0
+                       : MIN (off - GUTTER_WIDTH_MINIMUM, w - off));
     sdiff_column2_offset = sdiff_half_width ? off : w;
   }
 
@@ -865,7 +894,7 @@ static char const * const option_help_msgid[] = {
   "",
   N_("-p, --show-c-function         show which C function each change is in"),
   N_("-F, --show-function-line=RE   show the most recent line matching RE"),
-  N_("    --label LABEL             use LABEL instead of file name\n"
+  N_("    --label LABEL             use LABEL instead of file name and timestamp\n"
      "                                (can be repeated)"),
   "",
   N_("-t, --expand-tabs             expand tabs to spaces in output"),
@@ -934,11 +963,15 @@ static char const * const option_help_msgid[] = {
   N_("-d, --minimal            try hard to find a smaller set of changes"),
   N_("    --horizon-lines=NUM  keep NUM lines of the common prefix and suffix"),
   N_("    --speed-large-files  assume large files and many scattered small changes"),
+  N_("    --color[=WHEN]       colorize the output; WHEN can be 'never', 'always',"),
+  N_("                           or 'auto' (the default)"),
+  N_("    --palette=PALETTE    specify the colors to use when --color is active"),
+  N_("                           PALETTE is a colon-separated list terminfo capabilities"),
   "",
   N_("    --help               display this help and exit"),
   N_("-v, --version            output version information and exit"),
   "",
-  N_("FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE...' or 'FILE... DIR'."),
+  N_("FILES are 'FILE1 FILE2' or 'DIR1 DIR2' or 'DIR FILE' or 'FILE DIR'."),
   N_("If --from-file or --to-file is given, there are no restrictions on FILE(s)."),
   N_("If a FILE is '-', read standard input."),
   N_("Exit status is 0 if inputs are the same, 1 if different, 2 if trouble."),
@@ -1002,6 +1035,21 @@ specify_style (enum output_style style)
       output_style = style;
     }
 }
+
+/* Set the color mode.  */
+static void
+specify_colors_style (char const *value)
+{
+  if (value == NULL || STREQ (value, "auto"))
+    colors_style = AUTO;
+  else if (STREQ (value, "always"))
+    colors_style = ALWAYS;
+  else if (STREQ (value, "never"))
+    colors_style = NEVER;
+  else
+    try_help ("invalid color '%s'", value);
+}
+
 \f
 /* Set the last-modified time of *ST to be the current time.  */
 
@@ -1338,7 +1386,9 @@ compare_files (struct comparison const *parent,
   else if (files_can_be_treated_as_binary
           && S_ISREG (cmp.file[0].stat.st_mode)
           && S_ISREG (cmp.file[1].stat.st_mode)
-          && cmp.file[0].stat.st_size != cmp.file[1].stat.st_size)
+          && cmp.file[0].stat.st_size != cmp.file[1].stat.st_size
+          && 0 < cmp.file[0].stat.st_size
+          && 0 < cmp.file[1].stat.st_size)
     {
       message ("Files %s and %s differ\n",
               file_label[0] ? file_label[0] : cmp.file[0].name,
index e9f0471..0983e7c 100644 (file)
@@ -1,7 +1,7 @@
 /* Shared definitions for GNU DIFF
 
-   Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2009-2013 Free
-   Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1991-1995, 1998, 2001-2002, 2004, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -38,6 +38,19 @@ enum changes
   /* Both deletes and inserts: a hunk containing both old and new lines.  */
   CHANGED
 };
+
+/* When colors should be used in the output.  */
+enum colors_style
+{
+  /* Never output colors.  */
+  NEVER,
+
+  /* Output colors if the output is a terminal.  */
+  AUTO,
+
+  /* Always output colors.  */
+  ALWAYS,
+};
 \f
 /* Variables for command line options */
 
@@ -83,6 +96,9 @@ enum output_style
 
 XTERN enum output_style output_style;
 
+/* Define the current color context used to print a line.  */
+XTERN enum colors_style colors_style;
+
 /* Nonzero if output cannot be generated for identical files.  */
 XTERN bool no_diff_means_no_output;
 
@@ -383,6 +399,7 @@ extern void output_1_line (char const *, char const *, char const *,
 extern void perror_with_name (char const *);
 extern void pfatal_with_name (char const *) __attribute__((noreturn));
 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);
 extern void print_number_range (char, struct file_data *, lin, lin);
 extern void print_script (struct change *, struct change * (*) (struct change *),
@@ -390,3 +407,17 @@ extern void print_script (struct change *, struct change * (*) (struct change *)
 extern void setup_output (char const *, char const *, bool);
 extern void translate_range (struct file_data const *, lin, lin,
                              long int *, long int *);
+
+enum color_context
+{
+  HEADER_CONTEXT,
+  ADD_CONTEXT,
+  DELETE_CONTEXT,
+  RESET_CONTEXT,
+  LINE_NUMBER_CONTEXT,
+};
+
+XTERN bool presume_output_tty;
+
+extern void set_color_context (enum color_context color_context);
+extern void set_color_palette (char const *palette);
index e25ef5d..47df6f9 100644 (file)
@@ -1,7 +1,7 @@
 /* diff3 - compare three files line by line
 
-   Copyright (C) 1988-1989, 1992-1996, 1998, 2001-2002, 2004, 2006, 2009-2013
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1992-1996, 1998, 2001-2002, 2004, 2006, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1040,6 +1040,7 @@ process_diff (char const *filea,
 
   *block_list_end = NULL;
   *last_block = bptr;
+  free (diff_contents);
   return block_list;
 }
 
index 7f647b0..c8aa6a5 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 Free Software Foundation, Inc.
+   2009-2013, 2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -45,7 +45,6 @@ static bool locale_specific_sorting;
 static jmp_buf failed_locale_specific_sorting;
 
 static bool dir_loop (struct comparison const *, int);
-static int compare_names_for_qsort (void const *, void const *);
 
 
 /* Read a directory and get its vector of names.  */
@@ -140,6 +139,27 @@ dir_read (struct file_data const *dir, struct dirdata *dirdata)
   return true;
 }
 
+/* Compare strings in a locale-specific way, returning a value
+   compatible with strcmp.  */
+
+static int
+compare_collated (char const *name1, char const *name2)
+{
+  int r;
+  errno = 0;
+  if (ignore_file_name_case)
+    r = strcasecoll (name1, name2);
+  else
+    r = strcoll (name1, name2);
+  if (errno)
+    {
+      error (0, errno, _("cannot compare file names '%s' and '%s'"),
+            name1, name2);
+      longjmp (failed_locale_specific_sorting, 1);
+    }
+  return r;
+}
+
 /* Compare file names, returning a value compatible with strcmp.  */
 
 static int
@@ -147,21 +167,10 @@ compare_names (char const *name1, char const *name2)
 {
   if (locale_specific_sorting)
     {
-      int r;
-      errno = 0;
-      if (ignore_file_name_case)
-       r = strcasecoll (name1, name2);
-      else
-       r = strcoll (name1, name2);
-      if (errno)
-       {
-         error (0, errno, _("cannot compare file names '%s' and '%s'"),
-                name1, name2);
-         longjmp (failed_locale_specific_sorting, 1);
-       }
-      return r;
+      int diff = compare_collated (name1, name2);
+      if (diff || ignore_file_name_case)
+       return diff;
     }
-
   return file_name_cmp (name1, name2);
 }
 
@@ -173,8 +182,15 @@ compare_names_for_qsort (void const *file1, void const *file2)
 {
   char const *const *f1 = file1;
   char const *const *f2 = file2;
-  int diff = compare_names (*f1, *f2);
-  return diff ? diff : file_name_cmp (*f1, *f2);
+  char const *name1 = *f1;
+  char const *name2 = *f2;
+  if (locale_specific_sorting)
+    {
+      int diff = compare_collated (name1, name2);
+      if (diff)
+       return diff;
+    }
+  return file_name_cmp (name1, name2);
 }
 \f
 /* Compare the contents of two directories named in CMP.
@@ -259,7 +275,7 @@ diff_dirs (struct comparison const *cmp,
             O(N**2), where N is the number of names in a directory
             that compare_names says are all equal, but in practice N
             is so small it's not worth tuning.  */
-         if (nameorder == 0)
+         if (nameorder == 0 && ignore_file_name_case)
            {
              int raw_order = file_name_cmp (*names[0], *names[1]);
              if (raw_order != 0)
index 6a884df..1fae2b8 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
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1991-1993, 1995, 1998, 2001, 2004, 2006, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
index 34a5175..b8b084f 100644 (file)
@@ -1,7 +1,7 @@
 /* #ifdef-format output routines for GNU DIFF.
 
-   Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013 Free
-   Software Foundation, Inc.
+   Copyright (C) 1989, 1991-1994, 2001-2002, 2004, 2006, 2009-2013, 2015-2016
+   Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
index 463ee35..410bfef 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
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -108,6 +108,13 @@ sip (struct file_data *current, bool skip_test)
                                     PTRDIFF_MAX - 2 * sizeof (word));
       current->buffer = xmalloc (current->bufsize);
 
+#ifdef __KLIBC__
+      /* Skip test if seek is not possible */
+      skip_test = skip_test
+                 || (lseek (current->desc, 0, SEEK_CUR) < 0
+                     && errno == ESPIPE);
+#endif
+
       if (! skip_test)
        {
          /* Check first part of file to see if it's a binary file.  */
@@ -474,7 +481,6 @@ prepare_text (struct file_data *current)
 {
   size_t buffered = current->buffered;
   char *p = FILE_BUFFER (current);
-  char *dst;
 
   if (buffered == 0 || p[buffered - 1] == '\n')
     current->missing_newline = false;
@@ -490,16 +496,25 @@ prepare_text (struct file_data *current)
   /* Don't use uninitialized storage when planting or using sentinels.  */
   memset (p + buffered, 0, sizeof (word));
 
-  if (strip_trailing_cr && (dst = memchr (p, '\r', buffered)))
+  if (strip_trailing_cr)
     {
-      char const *src = dst;
-      char const *srclim = p + buffered;
+      char *dst;
+      char *srclim = p + buffered;
+      *srclim = '\r';
+      dst = rawmemchr (p, '\r');
 
-      do
-       dst += ! ((*dst = *src++) == '\r' && *src == '\n');
-      while (src < srclim);
+      if (dst != srclim)
+       {
+         char const *src = dst;
+         do
+           {
+             *dst = *src++;
+             dst += ! (*dst == '\r' && *src == '\n');
+           }
+         while (src < srclim);
 
-      buffered -= src - dst;
+         buffered -= src - dst;
+       }
     }
 
   current->buffered = buffered;
@@ -530,6 +545,7 @@ find_identical_ends (struct file_data filevec[])
   lin i, lines;
   size_t n0, n1;
   lin alloc_lines0, alloc_lines1;
+  bool prefix_needed;
   lin buffered_prefix, prefix_count, prefix_mask;
   lin middle_guess, suffix_guess;
 
@@ -679,12 +695,13 @@ find_identical_ends (struct file_data filevec[])
   prefix_mask = prefix_count - 1;
   lines = 0;
   linbuf0 = xmalloc (alloc_lines0 * sizeof *linbuf0);
+  prefix_needed = ! (no_diff_means_no_output
+                    && filevec[0].prefix_end == p0
+                    && filevec[1].prefix_end == p1);
   p0 = buffer0;
 
   /* If the prefix is needed, find the prefix lines.  */
-  if (! (no_diff_means_no_output
-        && filevec[0].prefix_end == p0
-        && filevec[1].prefix_end == p1))
+  if (prefix_needed)
     {
       end0 = filevec[0].prefix_end;
       while (p0 != end0)
index ea9de57..852a767 100644 (file)
@@ -1,7 +1,7 @@
 /* Normal-format output routines for GNU DIFF.
 
-   Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013 Free
-   Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1993, 1995, 1998, 2001, 2006, 2009-2013, 2015-2016
+   Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -49,21 +49,43 @@ print_normal_hunk (struct change *hunk)
   begin_output ();
 
   /* Print out the line number header for this hunk */
+  set_color_context (LINE_NUMBER_CONTEXT);
   print_number_range (',', &files[0], first0, last0);
   fputc (change_letter[changes], outfile);
   print_number_range (',', &files[1], first1, last1);
+  set_color_context (RESET_CONTEXT);
   fputc ('\n', outfile);
 
   /* Print the lines that the first file has.  */
   if (changes & OLD)
-    for (i = first0; i <= last0; i++)
-      print_1_line ("<", &files[0].linbuf[i]);
+    {
+      if (first0 <= last0)
+        set_color_context (DELETE_CONTEXT);
+      for (i = first0; i <= last0; i++)
+        {
+          print_1_line_nl ("<", &files[0].linbuf[i], true);
+          if (i == last0)
+            set_color_context (RESET_CONTEXT);
+          if (files[0].linbuf[i + 1][-1] == '\n')
+            putc ('\n', outfile);
+        }
+    }
 
   if (changes == CHANGED)
     fputs ("---\n", outfile);
 
   /* Print the lines that the second file has.  */
   if (changes & NEW)
-    for (i = first1; i <= last1; i++)
-      print_1_line (">", &files[1].linbuf[i]);
+    {
+      if (first1 <= last1)
+        set_color_context (ADD_CONTEXT);
+      for (i = first1; i <= last1; i++)
+        {
+          print_1_line_nl (">", &files[1].linbuf[i], true);
+          if (i == last1)
+            set_color_context (RESET_CONTEXT);
+          if (files[1].linbuf[i + 1][-1] == '\n')
+            putc ('\n', outfile);
+        }
+    }
 }
index b7f9f6a..22d6e5b 100644 (file)
@@ -1,7 +1,7 @@
 /* sdiff - side-by-side merge of file differences
 
-   Copyright (C) 1992-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013 Free
-   Software Foundation, Inc.
+   Copyright (C) 1992-1996, 1998, 2001-2002, 2004, 2006-2007, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -379,8 +379,8 @@ lf_copy (struct line_filter *lf, lin lines, FILE *outfile)
 
   while (lines)
     {
-      lf->bufpos = (char *) memchr (lf->bufpos, '\n', lf->buflim - lf->bufpos);
-      if (! lf->bufpos)
+      lf->bufpos = rawmemchr (lf->bufpos, '\n');
+      if (lf->bufpos == lf->buflim)
        {
          ck_fwrite (start, lf->buflim - start, outfile);
          if (! lf_refill (lf))
@@ -403,8 +403,8 @@ lf_skip (struct line_filter *lf, lin lines)
 {
   while (lines)
     {
-      lf->bufpos = (char *) memchr (lf->bufpos, '\n', lf->buflim - lf->bufpos);
-      if (! lf->bufpos)
+      lf->bufpos = rawmemchr (lf->bufpos, '\n');
+      if (lf->bufpos == lf->buflim)
        {
          if (! lf_refill (lf))
            break;
@@ -424,7 +424,7 @@ lf_snarf (struct line_filter *lf, char *buffer, size_t bufsize)
   for (;;)
     {
       char *start = lf->bufpos;
-      char *next = (char *) memchr (start, '\n', lf->buflim + 1 - start);
+      char *next = rawmemchr (start, '\n');
       size_t s = next - start;
       if (bufsize <= s)
        return 0;
@@ -1099,12 +1099,14 @@ interact (struct line_filter *diff,
          uintmax_t val;
          lin llen, rlen, lenmax;
          errno = 0;
-         llen = val = strtoumax (diff_help + 1, &numend, 10);
-         if (llen < 0 || llen != val || errno || *numend != ',')
+         val = strtoumax (diff_help + 1, &numend, 10);
+         if (LIN_MAX < val || errno || *numend != ',')
            fatal (diff_help);
-         rlen = val = strtoumax (numend + 1, &numend, 10);
-         if (rlen < 0 || rlen != val || errno || *numend)
+         llen = val;
+         val = strtoumax (numend + 1, &numend, 10);
+         if (LIN_MAX < val || errno || *numend)
            fatal (diff_help);
+         rlen = val;
 
          lenmax = MAX (llen, rlen);
 
index 284d960..2276385 100644 (file)
@@ -1,7 +1,7 @@
 /* sdiff-format output routines for GNU DIFF.
 
-   Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013 Free Software
-   Foundation, Inc.
+   Copyright (C) 1991-1993, 1998, 2001-2002, 2004, 2009-2013, 2015-2016 Free
+   Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -206,6 +206,18 @@ print_1sdiff_line (char const *const *left, char sep,
   size_t c2o = sdiff_column2_offset;
   size_t col = 0;
   bool put_newline = false;
+  bool color_to_reset = false;
+
+  if (sep == '<')
+    {
+      set_color_context (DELETE_CONTEXT);
+      color_to_reset = true;
+    }
+  else if (sep == '>')
+    {
+      set_color_context (ADD_CONTEXT);
+      color_to_reset = true;
+    }
 
   if (left)
     {
@@ -233,6 +245,9 @@ print_1sdiff_line (char const *const *left, char sep,
 
   if (put_newline)
     putc ('\n', out);
+
+  if (color_to_reset)
+    set_color_context (RESET_CONTEXT);
 }
 
 /* Print lines common to both files in side-by-side format.  */
index 827df96..be1c0bd 100644 (file)
@@ -1,7 +1,7 @@
 /* System dependent declarations.
 
-   Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
+   2015-2016 Free Software Foundation, Inc.
 
    This file is part of GNU DIFF.
 
@@ -119,10 +119,12 @@ int strcasecmp (char const *, char const *);
 #include "propername.h"
 #include "version.h"
 
-/* Type used for fast comparison of several bytes at a time.  */
+/* Type used for fast comparison of several bytes at a time.
+   This used to be uintmax_t, but changing it to size_t
+   made plain 'cmp' 90% faster (GCC 4.8.1, x86).  */
 
 #ifndef word
-# define word uintmax_t
+# define word size_t
 #endif
 
 /* The integer type of a line number.  Since files are read into main
@@ -133,6 +135,11 @@ typedef ptrdiff_t lin;
 verify (TYPE_SIGNED (lin));
 verify (sizeof (ptrdiff_t) <= sizeof (lin));
 verify (sizeof (lin) <= sizeof (long int));
+
+/* Limit so that 2 * CONTEXT + 1 does not overflow.  */
+
+#define CONTEXT_MAX ((LIN_MAX - 1) / 2)
+
 \f
 /* This section contains POSIX-compliant defaults for macros
    that are meant to be overridden by hand in config.h as needed.  */
index 016057d..d7b8925 100644 (file)
@@ -1,7 +1,7 @@
 /* Support routines for GNU DIFF.
 
-   Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013
-   Free Software Foundation, Inc.
+   Copyright (C) 1988-1989, 1992-1995, 1998, 2001-2002, 2004, 2006, 2009-2013,
+   2015-2016 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 <dirname.h>
 #include <error.h>
 #include <system-quote.h>
 #include <xalloc.h>
 #include "xvasprintf.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
+# if ! HAVE_SIGINTERRUPT
+#  define siginterrupt(sig, flag) /* empty */
+# endif
+#endif
+
+#ifndef SA_RESTART
+# define SA_RESTART 0
+#endif
 
 char const pr_program[] = PR_PROGRAM;
 
+bool presume_output_tty;
+
 /* Queue up one-line messages to be printed at the end,
    when -l is specified.  Each message is recorded with a 'struct msg'.  */
 
@@ -143,6 +162,568 @@ print_message_queue (void)
     }
 }
 \f
+/* 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.  */
+
+static void
+sighandler (int sig)
+{
+  if (! SA_NOCLDSTOP)
+    signal (sig, SIG_IGN);
+  if (! interrupt_signal)
+    interrupt_signal = sig;
+}
+
+/* A SIGTSTP was received; arrange for the program to suspend itself.  */
+
+static void
+stophandler (int sig)
+{
+  if (! SA_NOCLDSTOP)
+    signal (sig, stophandler);
+  if (! interrupt_signal)
+    stop_signal_count++;
+}
+/* Process any pending signals.  If signals are caught, this function
+   should be called periodically.  Ideally there should never be an
+   unbounded amount of time when signals are not being processed.
+   Signal handling can restore the default colors, so callers must
+   immediately change colors after invoking this function.  */
+
+static void
+process_signals (void)
+{
+  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);
+
+      /* 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;
+
+      /* SIGTSTP is special, since the application can receive that signal
+         more than once.  In this case, don't set the signal handler to the
+         default.  Instead, just raise the uncatchable SIGSTOP.  */
+      if (stops)
+        {
+          stop_signal_count = stops - 1;
+          sig = SIGSTOP;
+        }
+      else
+        signal (sig, SIG_DFL);
+
+      /* Exit or suspend the program.  */
+      raise (sig);
+      sigprocmask (SIG_SETMASK, &oldset, NULL);
+
+      /* 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 usual suspects.  */
+      SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM,
+#ifdef SIGPOLL
+      SIGPOLL,
+#endif
+#ifdef SIGPROF
+      SIGPROF,
+#endif
+#ifdef SIGVTALRM
+      SIGVTALRM,
+#endif
+#ifdef SIGXCPU
+      SIGXCPU,
+#endif
+#ifdef SIGXFSZ
+      SIGXFSZ,
+#endif
+    };
+  enum { nsigs = sizeof (sig) / sizeof *(sig) };
+
+#if ! SA_NOCLDSTOP
+  bool caught_sig[nsigs];
+#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]);
+      }
+
+    act.sa_mask = caught_signals;
+    act.sa_flags = SA_RESTART;
+
+    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++)
+      {
+        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);
+          }
+      }
+#endif
+    }
+}
+
+static char const *current_name0;
+static char const *current_name1;
+static bool currently_recursive;
+static bool colors_enabled;
+
+static struct color_ext_type *color_ext_list = NULL;
+
+struct bin_str
+  {
+    size_t len;                        /* Number of bytes */
+    const char *string;                /* Pointer to the same */
+  };
+
+struct color_ext_type
+  {
+    struct bin_str ext;                /* The extension we're looking for */
+    struct bin_str seq;                /* The sequence to output when we do */
+    struct color_ext_type *next;       /* Next in list */
+  };
+
+/* Parse a string as part of the --palette argument; this may involve
+   decoding all kinds of escape characters.  If equals_end is set an
+   unescaped equal sign ends the string, otherwise only a : or \0
+   does.  Set *OUTPUT_COUNT to the number of bytes output.  Return
+   true if successful.
+
+   The resulting string is *not* null-terminated, but may contain
+   embedded nulls.
+
+   Note that both dest and src are char **; on return they point to
+   the first free byte after the array and the character that ended
+   the input string, respectively.  */
+
+static bool
+get_funky_string (char **dest, const char **src, bool equals_end,
+                  size_t *output_count)
+{
+  char num;                    /* For numerical codes */
+  size_t count;                        /* Something to count with */
+  enum {
+    ST_GND, ST_BACKSLASH, ST_OCTAL, ST_HEX, ST_CARET, ST_END, ST_ERROR
+  } state;
+  const char *p;
+  char *q;
+
+  p = *src;                    /* We don't want to double-indirect */
+  q = *dest;                   /* the whole darn time.  */
+
+  count = 0;                   /* No characters counted in yet.  */
+  num = 0;
+
+  state = ST_GND;              /* Start in ground state.  */
+  while (state < ST_END)
+    {
+      switch (state)
+        {
+        case ST_GND:           /* Ground state (no escapes) */
+          switch (*p)
+            {
+            case ':':
+            case '\0':
+              state = ST_END;  /* End of string */
+              break;
+            case '\\':
+              state = ST_BACKSLASH; /* Backslash scape sequence */
+              ++p;
+              break;
+            case '^':
+              state = ST_CARET; /* Caret escape */
+              ++p;
+              break;
+            case '=':
+              if (equals_end)
+                {
+                  state = ST_END; /* End */
+                  break;
+                }
+              /* else fall through */
+            default:
+              *(q++) = *(p++);
+              ++count;
+              break;
+            }
+          break;
+
+        case ST_BACKSLASH:     /* Backslash escaped character */
+          switch (*p)
+            {
+            case '0':
+            case '1':
+            case '2':
+            case '3':
+            case '4':
+            case '5':
+            case '6':
+            case '7':
+              state = ST_OCTAL;        /* Octal sequence */
+              num = *p - '0';
+              break;
+            case 'x':
+            case 'X':
+              state = ST_HEX;  /* Hex sequence */
+              num = 0;
+              break;
+            case 'a':          /* Bell */
+              num = '\a';
+              break;
+            case 'b':          /* Backspace */
+              num = '\b';
+              break;
+            case 'e':          /* Escape */
+              num = 27;
+              break;
+            case 'f':          /* Form feed */
+              num = '\f';
+              break;
+            case 'n':          /* Newline */
+              num = '\n';
+              break;
+            case 'r':          /* Carriage return */
+              num = '\r';
+              break;
+            case 't':          /* Tab */
+              num = '\t';
+              break;
+            case 'v':          /* Vtab */
+              num = '\v';
+              break;
+            case '?':          /* Delete */
+              num = 127;
+              break;
+            case '_':          /* Space */
+              num = ' ';
+              break;
+            case '\0':         /* End of string */
+              state = ST_ERROR;        /* Error! */
+              break;
+            default:           /* Escaped character like \ ^ : = */
+              num = *p;
+              break;
+            }
+          if (state == ST_BACKSLASH)
+            {
+              *(q++) = num;
+              ++count;
+              state = ST_GND;
+            }
+          ++p;
+          break;
+
+        case ST_OCTAL:         /* Octal sequence */
+          if (*p < '0' || *p > '7')
+            {
+              *(q++) = num;
+              ++count;
+              state = ST_GND;
+            }
+          else
+            num = (num << 3) + (*(p++) - '0');
+          break;
+
+        case ST_HEX:           /* Hex sequence */
+          switch (*p)
+            {
+            case '0':
+            case '1':
+            case '2':
+            case '3':
+            case '4':
+            case '5':
+            case '6':
+            case '7':
+            case '8':
+            case '9':
+              num = (num << 4) + (*(p++) - '0');
+              break;
+            case 'a':
+            case 'b':
+            case 'c':
+            case 'd':
+            case 'e':
+            case 'f':
+              num = (num << 4) + (*(p++) - 'a') + 10;
+              break;
+            case 'A':
+            case 'B':
+            case 'C':
+            case 'D':
+            case 'E':
+            case 'F':
+              num = (num << 4) + (*(p++) - 'A') + 10;
+              break;
+            default:
+              *(q++) = num;
+              ++count;
+              state = ST_GND;
+              break;
+            }
+          break;
+
+        case ST_CARET:         /* Caret escape */
+          state = ST_GND;      /* Should be the next state... */
+          if (*p >= '@' && *p <= '~')
+            {
+              *(q++) = *(p++) & 037;
+              ++count;
+            }
+          else if (*p == '?')
+            {
+              *(q++) = 127;
+              ++count;
+            }
+          else
+            state = ST_ERROR;
+          break;
+
+        default:
+          abort ();
+        }
+    }
+
+  *dest = q;
+  *src = p;
+  *output_count = count;
+
+  return state != ST_ERROR;
+}
+
+enum parse_state
+  {
+    PS_START = 1,
+    PS_2,
+    PS_3,
+    PS_4,
+    PS_DONE,
+    PS_FAIL
+  };
+
+#define LEN_STR_PAIR(s) sizeof (s) - 1, s
+
+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) */
+    { LEN_STR_PAIR ("0") },            /* rs: Reset to ordinary colors */
+    { LEN_STR_PAIR ("1") },            /* hd: Header */
+    { LEN_STR_PAIR ("32") },           /* ad: Add line */
+    { LEN_STR_PAIR ("31") },           /* de: Delete line */
+    { LEN_STR_PAIR ("36") },           /* ln: Line number */
+  };
+
+static const char *const indicator_name[] =
+  {
+    "lc", "rc", "ec", "rs", "hd", "ad", "de", "ln", NULL
+  };
+ARGMATCH_VERIFY (indicator_name, color_indicator);
+
+static char const *color_palette;
+
+void
+set_color_palette (char const *palette)
+{
+  color_palette = palette;
+}
+
+static void
+parse_diff_color (void)
+{
+  char *color_buf;
+  const char *p;               /* Pointer to character being parsed */
+  char *buf;                   /* color_buf buffer pointer */
+  int ind_no;                  /* Indicator number */
+  char label[3];               /* Indicator label */
+  struct color_ext_type *ext;  /* Extension we are working on */
+
+  if ((p = color_palette) == NULL || *p == '\0')
+    return;
+
+  ext = NULL;
+  strcpy (label, "??");
+
+  /* This is an overly conservative estimate, but any possible
+     --palette string will *not* generate a color_buf longer than
+     itself, so it is a safe way of allocating a buffer in
+     advance.  */
+  buf = color_buf = xstrdup (p);
+
+  enum parse_state state = PS_START;
+  while (true)
+    {
+      switch (state)
+        {
+        case PS_START:         /* First label character */
+          switch (*p)
+            {
+            case ':':
+              ++p;
+              break;
+
+            case '*':
+              /* Allocate new extension block and add to head of
+                 linked list (this way a later definition will
+                 override an earlier one, which can be useful for
+                 having terminal-specific defs override global).  */
+
+              ext = xmalloc (sizeof *ext);
+              ext->next = color_ext_list;
+              color_ext_list = ext;
+
+              ++p;
+              ext->ext.string = buf;
+
+              state = (get_funky_string (&buf, &p, true, &ext->ext.len)
+                       ? PS_4 : PS_FAIL);
+              break;
+
+            case '\0':
+              state = PS_DONE; /* Done! */
+              goto done;
+
+            default:   /* Assume it is file type label */
+              label[0] = *(p++);
+              state = PS_2;
+              break;
+            }
+          break;
+
+        case PS_2:             /* Second label character */
+          if (*p)
+            {
+              label[1] = *(p++);
+              state = PS_3;
+            }
+          else
+            state = PS_FAIL;   /* Error */
+          break;
+
+        case PS_3:             /* Equal sign after indicator label */
+          state = PS_FAIL;     /* Assume failure...  */
+          if (*(p++) == '=')/* It *should* be...  */
+            {
+              for (ind_no = 0; indicator_name[ind_no] != NULL; ++ind_no)
+                {
+                  if (STREQ (label, indicator_name[ind_no]))
+                    {
+                      color_indicator[ind_no].string = buf;
+                      state = (get_funky_string (&buf, &p, false,
+                                                 &color_indicator[ind_no].len)
+                               ? PS_START : PS_FAIL);
+                      break;
+                    }
+                }
+              if (state == PS_FAIL)
+                error (0, 0, _("unrecognized prefix: %s"), label);
+            }
+          break;
+
+        case PS_4:             /* Equal sign after *.ext */
+          if (*(p++) == '=')
+            {
+              ext->seq.string = buf;
+              state = (get_funky_string (&buf, &p, false, &ext->seq.len)
+                       ? PS_START : PS_FAIL);
+            }
+          else
+            state = PS_FAIL;
+          break;
+
+        case PS_FAIL:
+          goto done;
+
+        default:
+          abort ();
+        }
+    }
+ done:
+
+  if (state == PS_FAIL)
+    {
+      struct color_ext_type *e;
+      struct color_ext_type *e2;
+
+      error (0, 0,
+             _("unparsable value for --palette"));
+      free (color_buf);
+      for (e = color_ext_list; e != NULL; /* empty */)
+        {
+          e2 = e;
+          e = e->next;
+          free (e2);
+        }
+      colors_enabled = false;
+    }
+}
+
+static void
+check_color_output (bool is_pipe)
+{
+  bool output_is_tty;
+
+  if (! outfile || colors_style == NEVER)
+    return;
+
+  output_is_tty = presume_output_tty || (!is_pipe && isatty (fileno (outfile)));
+
+  colors_enabled = (colors_style == ALWAYS
+                    || (colors_style == AUTO && output_is_tty));
+
+  if (colors_enabled)
+    parse_diff_color ();
+
+  if (output_is_tty)
+    install_signal_handlers ();
+}
+
 /* Call before outputting the results of comparing files NAME0 and NAME1
    to set up OUTFILE, the stdio stream for the output to go to.
 
@@ -150,10 +731,6 @@ print_message_queue (void)
    we fork off a 'pr' and make OUTFILE a pipe to it.
    'pr' then outputs to our stdout.  */
 
-static char const *current_name0;
-static char const *current_name1;
-static bool currently_recursive;
-
 void
 setup_output (char const *name0, char const *name1, bool recursive)
 {
@@ -313,6 +890,7 @@ begin_output (void)
            outfile = fdopen (pipes[1], "w");
            if (!outfile)
              pfatal_with_name ("fdopen");
+           check_color_output (true);
          }
 #else
        char *command = system_quote_argv (SCI_SYSTEM, (char **) argv);
@@ -320,6 +898,7 @@ begin_output (void)
        outfile = popen (command, "w");
        if (!outfile)
          pfatal_with_name (command);
+       check_color_output (true);
        free (command);
 #endif
       }
@@ -330,6 +909,7 @@ begin_output (void)
       /* If -l was not specified, output the diff straight to 'stdout'.  */
 
       outfile = stdout;
+      check_color_output (false);
 
       /* If handling multiple files (because scanning a directory),
         print which files the following output is about.  */
@@ -630,6 +1210,18 @@ print_script (struct change *script,
 void
 print_1_line (char const *line_flag, char const *const *line)
 {
+  print_1_line_nl (line_flag, line, false);
+}
+
+/* Print the text of a single line LINE,
+   flagging it with the characters in LINE_FLAG (which say whether
+   the line is inserted, deleted, changed, etc.).  LINE_FLAG must not
+   end in a blank, unless it is a single blank.  If SKIP_NL is set, then
+   the final '\n' is not printed.  */
+
+void
+print_1_line_nl (char const *line_flag, char const *const *line, bool skip_nl)
+{
   char const *base = line[0], *limit = line[1]; /* Help the compiler.  */
   FILE *out = outfile; /* Help the compiler some more.  */
   char const *flag_format = 0;
@@ -657,10 +1249,13 @@ print_1_line (char const *line_flag, char const *const *line)
       fprintf (out, flag_format_1, line_flag_1);
     }
 
-  output_1_line (base, limit, flag_format, line_flag);
+  output_1_line (base, limit - (skip_nl && limit[-1] == '\n'), flag_format, line_flag);
 
   if ((!line_flag || line_flag[0]) && limit[-1] != '\n')
-    fprintf (out, "\n\\ %s\n", _("No newline at end of file"));
+    {
+      set_color_context (RESET_CONTEXT);
+      fprintf (out, "\n\\ %s\n", _("No newline at end of file"));
+    }
 }
 
 /* Output a line from BASE up to LIMIT.
@@ -672,8 +1267,21 @@ void
 output_1_line (char const *base, char const *limit, char const *flag_format,
               char const *line_flag)
 {
+  const size_t MAX_CHUNK = 1024;
   if (!expand_tabs)
-    fwrite (base, sizeof (char), limit - base, outfile);
+    {
+      size_t left = limit - base;
+      while (left)
+        {
+          size_t to_write = MIN (left, MAX_CHUNK);
+          size_t written = fwrite (base, sizeof (char), to_write, outfile);
+          if (written < to_write)
+            return;
+          base += written;
+          left -= written;
+          process_signals ();
+        }
+    }
   else
     {
       register FILE *out = outfile;
@@ -681,42 +1289,104 @@ output_1_line (char const *base, char const *limit, char const *flag_format,
       register char const *t = base;
       register size_t column = 0;
       size_t tab_size = tabsize;
+      size_t counter_proc_signals = 0;
 
       while (t < limit)
-       switch ((c = *t++))
-         {
-         case '\t':
-           {
-             size_t spaces = tab_size - column % tab_size;
-             column += spaces;
-             do
-               putc (' ', out);
-             while (--spaces);
-           }
-           break;
+        {
+          counter_proc_signals++;
+          if (counter_proc_signals == MAX_CHUNK)
+            {
+              process_signals ();
+              counter_proc_signals = 0;
+            }
+
+          switch ((c = *t++))
+            {
+            case '\t':
+              {
+                size_t spaces = tab_size - column % tab_size;
+                column += spaces;
+                do
+                  putc (' ', out);
+                while (--spaces);
+              }
+              break;
+
+            case '\r':
+              putc (c, out);
+              if (flag_format && t < limit && *t != '\n')
+                fprintf (out, flag_format, line_flag);
+              column = 0;
+              break;
+
+            case '\b':
+              if (column == 0)
+                continue;
+              column--;
+              putc (c, out);
+              break;
+
+            default:
+              column += isprint (c) != 0;
+              putc (c, out);
+              break;
+            }
+        }
+    }
+}
 
-         case '\r':
-           putc (c, out);
-           if (flag_format && t < limit && *t != '\n')
-             fprintf (out, flag_format, line_flag);
-           column = 0;
-           break;
+enum indicator_no
+  {
+    C_LEFT, C_RIGHT, C_END, C_RESET, C_HEADER, C_ADD, C_DELETE, C_LINE
+  };
 
-         case '\b':
-           if (column == 0)
-             continue;
-           column--;
-           putc (c, out);
-           break;
+static void
+put_indicator (const struct bin_str *ind)
+{
+  fwrite (ind->string, ind->len, 1, outfile);
+}
 
-         default:
-           column += isprint (c) != 0;
-           putc (c, out);
-           break;
-         }
+static enum color_context last_context = RESET_CONTEXT;
+
+void
+set_color_context (enum color_context color_context)
+{
+  if (color_context != RESET_CONTEXT)
+    process_signals ();
+  if (colors_enabled && last_context != color_context)
+    {
+      put_indicator (&color_indicator[C_LEFT]);
+      switch (color_context)
+        {
+        case HEADER_CONTEXT:
+          put_indicator (&color_indicator[C_HEADER]);
+          break;
+
+        case LINE_NUMBER_CONTEXT:
+          put_indicator (&color_indicator[C_LINE]);
+          break;
+
+        case ADD_CONTEXT:
+          put_indicator (&color_indicator[C_ADD]);
+          break;
+
+        case DELETE_CONTEXT:
+          put_indicator (&color_indicator[C_DELETE]);
+          break;
+
+        case RESET_CONTEXT:
+          put_indicator (&color_indicator[C_RESET]);
+          break;
+
+        default:
+          abort ();
+        }
+      put_indicator (&color_indicator[C_RIGHT]);
+      last_context = color_context;
     }
 }
 
+
 char const change_letter[] = { 0, 'd', 'a', 'c' };
 \f
 /* Translate an internal line number (an index into diff's table of lines)
@@ -817,7 +1487,8 @@ analyze_hunk (struct change *hunk,
       for (i = next->line0; i <= l0 && trivial; i++)
        {
          char const *line = linbuf0[i];
-         char const *newline = linbuf0[i + 1] - 1;
+         char const *lastbyte = linbuf0[i + 1] - 1;
+         char const *newline = lastbyte + (*lastbyte != '\n');
          size_t len = newline - line;
          char const *p = line;
          if (skip_white_space)
@@ -837,7 +1508,8 @@ analyze_hunk (struct change *hunk,
       for (i = next->line1; i <= l1 && trivial; i++)
        {
          char const *line = linbuf1[i];
-         char const *newline = linbuf1[i + 1] - 1;
+         char const *lastbyte = linbuf1[i + 1] - 1;
+         char const *newline = lastbyte + (*lastbyte != '\n');
          size_t len = newline - line;
          char const *p = line;
          if (skip_white_space)
index f9beeeb..77d9fc3 100644 (file)
@@ -2,53 +2,88 @@
 
 TESTS = \
   basic \
+  bignum \
   binary \
+  brief-vs-stat-zero-kernel-lies \
   colliding-file-names \
   excess-slash \
   help-version \
   function-line-vs-leading-space \
+  ignore-matching-lines \
   label-vs-func        \
   new-file \
   no-dereference \
   no-newline-at-eof \
   stdin \
-  filename-quoting
+  strcoll-0-names \
+  filename-quoting \
+  colors
 
 EXTRA_DIST = \
-  $(TESTS) init.sh t-local.sh
+  $(TESTS) init.sh t-local.sh envvar-check
 
 # Note that the first lines are statements.  They ensure that environment
 # variables that can perturb tests are unset or set to expected values.
 # The rest are envvar settings that propagate build-related Makefile
 # variables to test scripts.
-TESTS_ENVIRONMENT =                            \
-  tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.;        \
-  TMPDIR=$$tmp__; export TMPDIR;               \
-  export                                       \
-  VERSION='$(VERSION)'                         \
-  abs_top_builddir='$(abs_top_builddir)'       \
-  abs_top_srcdir='$(abs_top_srcdir)'           \
-  abs_srcdir='$(abs_srcdir)'                   \
-  built_programs="`$(built_programs)`"         \
-  srcdir='$(srcdir)'                           \
-  top_srcdir='$(top_srcdir)'                   \
-  CC='$(CC)'                                   \
-  MAKE=$(MAKE)                                 \
-  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'     \
-  PACKAGE_VERSION=$(PACKAGE_VERSION)           \
-  CONFIG_HEADER='$(abs_top_builddir)/lib/config.h' \
-  ENABLE_DEVICE_MAPPER=$(ENABLE_DEVICE_MAPPER) \
-  PERL='$(PERL)'                               \
-  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
-  REPLACE_GETCWD=$(REPLACE_GETCWD)             \
-  PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \
+TESTS_ENVIRONMENT =                                    \
+  tmp__=$${TMPDIR-/tmp};                               \
+  test -d "$$tmp__" && test -w "$$tmp__" || tmp__=.;   \
+  . $(srcdir)/envvar-check;                            \
+  TMPDIR=$$tmp__; export TMPDIR;                       \
+                                                       \
+  if test -n "$$BASH_VERSION" || (eval "export v=x") 2>/dev/null; then \
+    export_with_values () { export "$$@"; };           \
+  else                                                 \
+    export_with_values ()                              \
+    {                                                  \
+      sed_extract_var='s/=.*//';                       \
+      sed_quote_value="s/'/'\\\\''/g;s/=\\(.*\\)/='\\1'/";\
+      for arg in "$$@"; do                             \
+        var=`echo "$$arg" | sed "$$sed_extract_var"`;  \
+        arg=`echo "$$arg" | sed "$$sed_quote_value"`;  \
+        eval "$$arg";                                  \
+        export "$$var";                                        \
+      done;                                            \
+    };                                                 \
+  fi;                                                  \
+                                                       \
+  export_with_values                                   \
+  VERSION='$(VERSION)'                                 \
+  LOCALE_FR='$(LOCALE_FR)'                             \
+  LOCALE_FR_UTF8='$(LOCALE_FR_UTF8)'                   \
+  AWK=$(AWK)                                           \
+  GREP_OPTIONS=''                                      \
+  LC_ALL=C                                             \
+  abs_top_builddir='$(abs_top_builddir)'               \
+  abs_top_srcdir='$(abs_top_srcdir)'                   \
+  abs_srcdir='$(abs_srcdir)'                           \
+  built_programs="`$(built_programs)`"                 \
+  srcdir='$(srcdir)'                                   \
+  top_srcdir='$(top_srcdir)'                           \
+  CC='$(CC)'                                           \
+  DIFFUTILS_TEST_NAME=`echo $$tst|sed 's,^\./,,;s,/,-,g'` \
+  MAKE=$(MAKE)                                         \
+  MALLOC_PERTURB_=$(MALLOC_PERTURB_)                   \
+  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'             \
+  PACKAGE_VERSION=$(PACKAGE_VERSION)                   \
+  PERL='$(PERL)'                                       \
+  SHELL='$(SHELL)'                                     \
+  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)'   \
+  REPLACE_GETCWD=$(REPLACE_GETCWD)                     \
+  PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"      \
+  stderr_fileno_=9                                     \
   ; 9>&2
 
 LOG_COMPILER= $(SHELL)
 
 built_programs =                                                       \
   echo 'spy:;@echo $$(PROGRAMS)'                                       \
-    | (cd ../src && MAKEFLAGS= $(MAKE) -s -f Makefile -f - spy)                \
-    | tr ' ' '\n' | sed '/^$$/d; s,$(EXEEXT)$$,,' | sort -u
+    | { (cd ../src && MAKEFLAGS= $(MAKE) -s -f Makefile -f - spy)      \
+          | tr ' ' '\n'                                                        \
+          | sed '/^$$/d; s,$(EXEEXT)$$,,'                              \
+          | sort -u                                                    \
+          | tr '\n' ' '; echo; }                                       \
+    | sed 's/ $$//'
 
 VERBOSE = yes
index 1b10cba..f7667a3 100644 (file)
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.13a from Makefile.am.
+# Makefile.in generated by automake 1.99a from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2015 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 
 # tests for GNU diff
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \  ]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -51,15 +89,14 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-       $(top_srcdir)/build-aux/test-driver
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
-       $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/btowc.m4 \
+       $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/alloca.m4 \
+       $(top_srcdir)/m4/arpa_inet_h.m4 $(top_srcdir)/m4/btowc.m4 \
        $(top_srcdir)/m4/c-stack.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/configmake.m4 \
-       $(top_srcdir)/m4/dirname.m4 \
+       $(top_srcdir)/m4/ctype.m4 $(top_srcdir)/m4/dirname.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 \
@@ -67,9 +104,10 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.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/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
-       $(top_srcdir)/m4/fpieee.m4 $(top_srcdir)/m4/freopen.m4 \
-       $(top_srcdir)/m4/fstat.m4 $(top_srcdir)/m4/getcwd.m4 \
+       $(top_srcdir)/m4/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \
+       $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpieee.m4 \
+       $(top_srcdir)/m4/freopen.m4 $(top_srcdir)/m4/fstat.m4 \
+       $(top_srcdir)/m4/ftruncate.m4 $(top_srcdir)/m4/getcwd.m4 \
        $(top_srcdir)/m4/getdtablesize.m4 $(top_srcdir)/m4/getopt.m4 \
        $(top_srcdir)/m4/getpagesize.m4 $(top_srcdir)/m4/gettext.m4 \
        $(top_srcdir)/m4/gettime.m4 $(top_srcdir)/m4/gettimeofday.m4 \
@@ -78,14 +116,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/gnulib-comp.m4 \
        $(top_srcdir)/m4/hard-locale.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/inline.m4 \
-       $(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intmax_t.m4 \
-       $(top_srcdir)/m4/inttostr.m4 $(top_srcdir)/m4/inttypes-pri.m4 \
-       $(top_srcdir)/m4/inttypes.m4 $(top_srcdir)/m4/inttypes_h.m4 \
-       $(top_srcdir)/m4/iswblank.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/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-pri.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/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/localcharset.m4 $(top_srcdir)/m4/locale-fr.m4 \
        $(top_srcdir)/m4/locale-ja.m4 $(top_srcdir)/m4/locale-tr.m4 \
@@ -101,36 +140,45 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/mktime.m4 $(top_srcdir)/m4/mmap-anon.m4 \
        $(top_srcdir)/m4/mode_t.m4 $(top_srcdir)/m4/msvc-inval.m4 \
        $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+       $(top_srcdir)/m4/nanosleep.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/off_t.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/putenv.m4 \
        $(top_srcdir)/m4/quote.m4 $(top_srcdir)/m4/quotearg.m4 \
-       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/readlink.m4 \
-       $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/secure_getenv.m4 \
+       $(top_srcdir)/m4/raise.m4 $(top_srcdir)/m4/rawmemchr.m4 \
+       $(top_srcdir)/m4/readlink.m4 $(top_srcdir)/m4/regex.m4 \
+       $(top_srcdir)/m4/secure_getenv.m4 $(top_srcdir)/m4/select.m4 \
        $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/setlocale.m4 \
        $(top_srcdir)/m4/sigaction.m4 $(top_srcdir)/m4/signal_h.m4 \
        $(top_srcdir)/m4/signalblocking.m4 \
        $(top_srcdir)/m4/size_max.m4 $(top_srcdir)/m4/sleep.m4 \
-       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/ssize_t.m4 \
+       $(top_srcdir)/m4/snprintf.m4 $(top_srcdir)/m4/socketlib.m4 \
+       $(top_srcdir)/m4/sockets.m4 $(top_srcdir)/m4/socklen.m4 \
+       $(top_srcdir)/m4/sockpfaf.m4 $(top_srcdir)/m4/ssize_t.m4 \
        $(top_srcdir)/m4/stat-time.m4 $(top_srcdir)/m4/stat.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/strcase.m4 \
-       $(top_srcdir)/m4/strerror.m4 $(top_srcdir)/m4/strftime.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/strcase.m4 $(top_srcdir)/m4/strerror.m4 \
+       $(top_srcdir)/m4/strerror_r.m4 $(top_srcdir)/m4/strftime.m4 \
        $(top_srcdir)/m4/string_h.m4 $(top_srcdir)/m4/strings_h.m4 \
        $(top_srcdir)/m4/strndup.m4 $(top_srcdir)/m4/strnlen.m4 \
        $(top_srcdir)/m4/strptime.m4 $(top_srcdir)/m4/strtoull.m4 \
        $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+       $(top_srcdir)/m4/sys_ioctl_h.m4 \
+       $(top_srcdir)/m4/sys_select_h.m4 \
        $(top_srcdir)/m4/sys_socket_h.m4 \
        $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
-       $(top_srcdir)/m4/sys_types_h.m4 $(top_srcdir)/m4/sys_wait_h.m4 \
-       $(top_srcdir)/m4/tempname.m4 $(top_srcdir)/m4/time_h.m4 \
-       $(top_srcdir)/m4/time_r.m4 $(top_srcdir)/m4/timespec.m4 \
-       $(top_srcdir)/m4/tm_gmtoff.m4 $(top_srcdir)/m4/unistd_h.m4 \
-       $(top_srcdir)/m4/unlocked-io.m4 $(top_srcdir)/m4/usleep.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/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/unistd_h.m4 $(top_srcdir)/m4/unlocked-io.m4 \
        $(top_srcdir)/m4/vararrays.m4 $(top_srcdir)/m4/vasnprintf.m4 \
        $(top_srcdir)/m4/vasprintf.m4 $(top_srcdir)/m4/version-etc.m4 \
        $(top_srcdir)/m4/warn-on-use.m4 $(top_srcdir)/m4/warnings.m4 \
@@ -143,6 +191,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
        $(top_srcdir)/m4/xvasprintf.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/lib/config.h
 CONFIG_CLEAN_FILES =
@@ -371,6 +420,8 @@ TEST_LOGS = $(am__test_logs2:.test.log=.log)
 TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver
 TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
        $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+       $(top_srcdir)/build-aux/test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 pkglibexecdir = @pkglibexecdir@
 ACLOCAL = @ACLOCAL@
@@ -418,13 +469,17 @@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
 GLIBC21 = @GLIBC21@
 GMSGFMT = @GMSGFMT@
 GMSGFMT_015 = @GMSGFMT_015@
+GNULIB_ACCEPT = @GNULIB_ACCEPT@
+GNULIB_ACCEPT4 = @GNULIB_ACCEPT4@
 GNULIB_ATOLL = @GNULIB_ATOLL@
+GNULIB_BIND = @GNULIB_BIND@
 GNULIB_BTOWC = @GNULIB_BTOWC@
 GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@
 GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@
 GNULIB_CHDIR = @GNULIB_CHDIR@
 GNULIB_CHOWN = @GNULIB_CHOWN@
 GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CONNECT = @GNULIB_CONNECT@
 GNULIB_DPRINTF = @GNULIB_DPRINTF@
 GNULIB_DUP = @GNULIB_DUP@
 GNULIB_DUP2 = @GNULIB_DUP2@
@@ -478,6 +533,9 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@
 GNULIB_GETLOGIN = @GNULIB_GETLOGIN@
 GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@
 GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@
+GNULIB_GETPEERNAME = @GNULIB_GETPEERNAME@
+GNULIB_GETSOCKNAME = @GNULIB_GETSOCKNAME@
+GNULIB_GETSOCKOPT = @GNULIB_GETSOCKOPT@
 GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
 GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
 GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
@@ -487,13 +545,18 @@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
 GNULIB_ICONV = @GNULIB_ICONV@
 GNULIB_IMAXABS = @GNULIB_IMAXABS@
 GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_INET_NTOP = @GNULIB_INET_NTOP@
+GNULIB_INET_PTON = @GNULIB_INET_PTON@
+GNULIB_IOCTL = @GNULIB_IOCTL@
 GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISBLANK = @GNULIB_ISBLANK@
 GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
 GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
 GNULIB_LCHMOD = @GNULIB_LCHMOD@
 GNULIB_LCHOWN = @GNULIB_LCHOWN@
 GNULIB_LINK = @GNULIB_LINK@
 GNULIB_LINKAT = @GNULIB_LINKAT@
+GNULIB_LISTEN = @GNULIB_LISTEN@
 GNULIB_LOCALECONV = @GNULIB_LOCALECONV@
 GNULIB_LSEEK = @GNULIB_LSEEK@
 GNULIB_LSTAT = @GNULIB_LSTAT@
@@ -549,6 +612,7 @@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
 GNULIB_PREAD = @GNULIB_PREAD@
 GNULIB_PRINTF = @GNULIB_PRINTF@
 GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PSELECT = @GNULIB_PSELECT@
 GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
 GNULIB_PTSNAME = @GNULIB_PTSNAME@
 GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
@@ -557,6 +621,7 @@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
 GNULIB_PUTENV = @GNULIB_PUTENV@
 GNULIB_PUTS = @GNULIB_PUTS@
 GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_QSORT_R = @GNULIB_QSORT_R@
 GNULIB_RAISE = @GNULIB_RAISE@
 GNULIB_RANDOM = @GNULIB_RANDOM@
 GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
@@ -566,6 +631,8 @@ GNULIB_READLINK = @GNULIB_READLINK@
 GNULIB_READLINKAT = @GNULIB_READLINKAT@
 GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@
 GNULIB_REALPATH = @GNULIB_REALPATH@
+GNULIB_RECV = @GNULIB_RECV@
+GNULIB_RECVFROM = @GNULIB_RECVFROM@
 GNULIB_REMOVE = @GNULIB_REMOVE@
 GNULIB_RENAME = @GNULIB_RENAME@
 GNULIB_RENAMEAT = @GNULIB_RENAMEAT@
@@ -573,14 +640,20 @@ GNULIB_RMDIR = @GNULIB_RMDIR@
 GNULIB_RPMATCH = @GNULIB_RPMATCH@
 GNULIB_SCANF = @GNULIB_SCANF@
 GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@
+GNULIB_SELECT = @GNULIB_SELECT@
+GNULIB_SEND = @GNULIB_SEND@
+GNULIB_SENDTO = @GNULIB_SENDTO@
 GNULIB_SETENV = @GNULIB_SETENV@
 GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
 GNULIB_SETLOCALE = @GNULIB_SETLOCALE@
+GNULIB_SETSOCKOPT = @GNULIB_SETSOCKOPT@
+GNULIB_SHUTDOWN = @GNULIB_SHUTDOWN@
 GNULIB_SIGACTION = @GNULIB_SIGACTION@
 GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
 GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
 GNULIB_SLEEP = @GNULIB_SLEEP@
 GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SOCKET = @GNULIB_SOCKET@
 GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
 GNULIB_STAT = @GNULIB_STAT@
 GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
@@ -612,6 +685,7 @@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@
 GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
 GNULIB_TIMEGM = @GNULIB_TIMEGM@
 GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TIME_RZ = @GNULIB_TIME_RZ@
 GNULIB_TMPFILE = @GNULIB_TMPFILE@
 GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
 GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
@@ -674,6 +748,8 @@ GNULIB_WMEMSET = @GNULIB_WMEMSET@
 GNULIB_WRITE = @GNULIB_WRITE@
 GNULIB__EXIT = @GNULIB__EXIT@
 GREP = @GREP@
+HAVE_ACCEPT4 = @HAVE_ACCEPT4@
+HAVE_ARPA_INET_H = @HAVE_ARPA_INET_H@
 HAVE_ATOLL = @HAVE_ATOLL@
 HAVE_BTOWC = @HAVE_BTOWC@
 HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
@@ -693,6 +769,8 @@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
 HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
 HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
 HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_INET_NTOP = @HAVE_DECL_INET_NTOP@
+HAVE_DECL_INET_PTON = @HAVE_DECL_INET_PTON@
 HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
 HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
 HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
@@ -746,6 +824,7 @@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@
 HAVE_GRANTPT = @HAVE_GRANTPT@
 HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
 HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISBLANK = @HAVE_ISBLANK@
 HAVE_ISWBLANK = @HAVE_ISWBLANK@
 HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
 HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
@@ -760,6 +839,7 @@ HAVE_LINK = @HAVE_LINK@
 HAVE_LINKAT = @HAVE_LINKAT@
 HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@
 HAVE_LSTAT = @HAVE_LSTAT@
+HAVE_MAX_ALIGN_T = @HAVE_MAX_ALIGN_T@
 HAVE_MBRLEN = @HAVE_MBRLEN@
 HAVE_MBRTOWC = @HAVE_MBRTOWC@
 HAVE_MBSINIT = @HAVE_MBSINIT@
@@ -780,6 +860,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@
 HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
 HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
 HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NETINET_IN_H = @HAVE_NETINET_IN_H@
 HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
 HAVE_OPENAT = @HAVE_OPENAT@
 HAVE_OS_H = @HAVE_OS_H@
@@ -790,6 +871,7 @@ HAVE_POPEN = @HAVE_POPEN@
 HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
 HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
 HAVE_PREAD = @HAVE_PREAD@
+HAVE_PSELECT = @HAVE_PSELECT@
 HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
 HAVE_PTSNAME = @HAVE_PTSNAME@
 HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
@@ -804,6 +886,7 @@ HAVE_READLINKAT = @HAVE_READLINKAT@
 HAVE_REALPATH = @HAVE_REALPATH@
 HAVE_RENAMEAT = @HAVE_RENAMEAT@
 HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SA_FAMILY_T = @HAVE_SA_FAMILY_T@
 HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@
 HAVE_SETENV = @HAVE_SETENV@
 HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
@@ -830,17 +913,24 @@ HAVE_STRTOLL = @HAVE_STRTOLL@
 HAVE_STRTOULL = @HAVE_STRTOULL@
 HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@
 HAVE_STRUCT_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+HAVE_STRUCT_SOCKADDR_STORAGE = @HAVE_STRUCT_SOCKADDR_STORAGE@
+HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = @HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY@
 HAVE_STRUCT_TIMEVAL = @HAVE_STRUCT_TIMEVAL@
 HAVE_STRVERSCMP = @HAVE_STRVERSCMP@
 HAVE_SYMLINK = @HAVE_SYMLINK@
 HAVE_SYMLINKAT = @HAVE_SYMLINKAT@
 HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@
 HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@
+HAVE_SYS_IOCTL_H = @HAVE_SYS_IOCTL_H@
 HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@
 HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@
+HAVE_SYS_SELECT_H = @HAVE_SYS_SELECT_H@
+HAVE_SYS_SOCKET_H = @HAVE_SYS_SOCKET_H@
 HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@
 HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@
+HAVE_SYS_UIO_H = @HAVE_SYS_UIO_H@
 HAVE_TIMEGM = @HAVE_TIMEGM@
+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_UNLINKAT = @HAVE_UNLINKAT@
@@ -888,6 +978,7 @@ HAVE_WMEMCMP = @HAVE_WMEMCMP@
 HAVE_WMEMCPY = @HAVE_WMEMCPY@
 HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
 HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE_WS2TCPIP_H = @HAVE_WS2TCPIP_H@
 HAVE_XLOCALE_H = @HAVE_XLOCALE_H@
 HAVE__BOOL = @HAVE__BOOL@
 HAVE__EXIT = @HAVE__EXIT@
@@ -896,6 +987,7 @@ ICONV_CONST = @ICONV_CONST@
 ICONV_H = @ICONV_H@
 INCLUDE_NEXT = @INCLUDE_NEXT@
 INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@
+INET_PTON_LIB = @INET_PTON_LIB@
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -915,11 +1007,14 @@ LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBSIGSEGV = @LIBSIGSEGV@
 LIBSIGSEGV_PREFIX = @LIBSIGSEGV_PREFIX@
+LIBSOCKET = @LIBSOCKET@
 LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@
 LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@
 LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
 LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
 LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
+LIB_NANOSLEEP = @LIB_NANOSLEEP@
+LIB_SELECT = @LIB_SELECT@
 LOCALCHARSET_TESTS_ENVIRONMENT = @LOCALCHARSET_TESTS_ENVIRONMENT@
 LOCALE_FR = @LOCALE_FR@
 LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@
@@ -936,6 +1031,10 @@ MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
 MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+NETINET_IN_H = @NETINET_IN_H@
+NEXT_ARPA_INET_H = @NEXT_ARPA_INET_H@
+NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_H = @NEXT_AS_FIRST_DIRECTIVE_ARPA_INET_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_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@
 NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@
@@ -944,6 +1043,7 @@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@
 NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@
 NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H = @NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H@
 NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@
+NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H = @NEXT_AS_FIRST_DIRECTIVE_NETINET_IN_H@
 NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H@
 NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@
 NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@
@@ -952,14 +1052,19 @@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@
 NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@
 NEXT_AS_FIRST_DIRECTIVE_STRINGS_H = @NEXT_AS_FIRST_DIRECTIVE_STRINGS_H@
 NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_IOCTL_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SELECT_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_SOCKET_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@
+NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_UIO_H@
 NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_WAIT_H@
 NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@
 NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@
 NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@
 NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H = @NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H@
+NEXT_CTYPE_H = @NEXT_CTYPE_H@
 NEXT_ERRNO_H = @NEXT_ERRNO_H@
 NEXT_FCNTL_H = @NEXT_FCNTL_H@
 NEXT_FLOAT_H = @NEXT_FLOAT_H@
@@ -968,6 +1073,7 @@ NEXT_ICONV_H = @NEXT_ICONV_H@
 NEXT_INTTYPES_H = @NEXT_INTTYPES_H@
 NEXT_LANGINFO_H = @NEXT_LANGINFO_H@
 NEXT_LOCALE_H = @NEXT_LOCALE_H@
+NEXT_NETINET_IN_H = @NEXT_NETINET_IN_H@
 NEXT_SIGNAL_H = @NEXT_SIGNAL_H@
 NEXT_STDARG_H = @NEXT_STDARG_H@
 NEXT_STDDEF_H = @NEXT_STDDEF_H@
@@ -976,9 +1082,13 @@ NEXT_STDIO_H = @NEXT_STDIO_H@
 NEXT_STDLIB_H = @NEXT_STDLIB_H@
 NEXT_STRINGS_H = @NEXT_STRINGS_H@
 NEXT_STRING_H = @NEXT_STRING_H@
+NEXT_SYS_IOCTL_H = @NEXT_SYS_IOCTL_H@
+NEXT_SYS_SELECT_H = @NEXT_SYS_SELECT_H@
+NEXT_SYS_SOCKET_H = @NEXT_SYS_SOCKET_H@
 NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@
 NEXT_SYS_TIME_H = @NEXT_SYS_TIME_H@
 NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@
+NEXT_SYS_UIO_H = @NEXT_SYS_UIO_H@
 NEXT_SYS_WAIT_H = @NEXT_SYS_WAIT_H@
 NEXT_TIME_H = @NEXT_TIME_H@
 NEXT_UNISTD_H = @NEXT_UNISTD_H@
@@ -1031,14 +1141,19 @@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@
 REPLACE_GETCWD = @REPLACE_GETCWD@
 REPLACE_GETDELIM = @REPLACE_GETDELIM@
 REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETDTABLESIZE = @REPLACE_GETDTABLESIZE@
 REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
 REPLACE_GETLINE = @REPLACE_GETLINE@
 REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
 REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
 REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_GMTIME = @REPLACE_GMTIME@
 REPLACE_ICONV = @REPLACE_ICONV@
 REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@
 REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@
+REPLACE_INET_NTOP = @REPLACE_INET_NTOP@
+REPLACE_INET_PTON = @REPLACE_INET_PTON@
+REPLACE_IOCTL = @REPLACE_IOCTL@
 REPLACE_ISATTY = @REPLACE_ISATTY@
 REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
 REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
@@ -1047,6 +1162,7 @@ REPLACE_LCHOWN = @REPLACE_LCHOWN@
 REPLACE_LINK = @REPLACE_LINK@
 REPLACE_LINKAT = @REPLACE_LINKAT@
 REPLACE_LOCALECONV = @REPLACE_LOCALECONV@
+REPLACE_LOCALTIME = @REPLACE_LOCALTIME@
 REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@
 REPLACE_LSEEK = @REPLACE_LSEEK@
 REPLACE_LSTAT = @REPLACE_LSTAT@
@@ -1075,21 +1191,25 @@ REPLACE_PERROR = @REPLACE_PERROR@
 REPLACE_POPEN = @REPLACE_POPEN@
 REPLACE_PREAD = @REPLACE_PREAD@
 REPLACE_PRINTF = @REPLACE_PRINTF@
+REPLACE_PSELECT = @REPLACE_PSELECT@
 REPLACE_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
 REPLACE_PTSNAME = @REPLACE_PTSNAME@
 REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
 REPLACE_PUTENV = @REPLACE_PUTENV@
 REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_QSORT_R = @REPLACE_QSORT_R@
 REPLACE_RAISE = @REPLACE_RAISE@
 REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
 REPLACE_READ = @REPLACE_READ@
 REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_READLINKAT = @REPLACE_READLINKAT@
 REPLACE_REALLOC = @REPLACE_REALLOC@
 REPLACE_REALPATH = @REPLACE_REALPATH@
 REPLACE_REMOVE = @REPLACE_REMOVE@
 REPLACE_RENAME = @REPLACE_RENAME@
 REPLACE_RENAMEAT = @REPLACE_RENAMEAT@
 REPLACE_RMDIR = @REPLACE_RMDIR@
+REPLACE_SELECT = @REPLACE_SELECT@
 REPLACE_SETENV = @REPLACE_SETENV@
 REPLACE_SETLOCALE = @REPLACE_SETLOCALE@
 REPLACE_SLEEP = @REPLACE_SLEEP@
@@ -1112,9 +1232,11 @@ REPLACE_STRSTR = @REPLACE_STRSTR@
 REPLACE_STRTOD = @REPLACE_STRTOD@
 REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
 REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_STRTOUMAX = @REPLACE_STRTOUMAX@
 REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@
 REPLACE_STRUCT_TIMEVAL = @REPLACE_STRUCT_TIMEVAL@
 REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_SYMLINKAT = @REPLACE_SYMLINKAT@
 REPLACE_TIMEGM = @REPLACE_TIMEGM@
 REPLACE_TMPFILE = @REPLACE_TMPFILE@
 REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
@@ -1138,21 +1260,26 @@ REPLACE_WCTOB = @REPLACE_WCTOB@
 REPLACE_WCTOMB = @REPLACE_WCTOMB@
 REPLACE_WCWIDTH = @REPLACE_WCWIDTH@
 REPLACE_WRITE = @REPLACE_WRITE@
+SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 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@
 STDDEF_H = @STDDEF_H@
 STDINT_H = @STDINT_H@
 STRIP = @STRIP@
+SYS_IOCTL_H_HAVE_WINSOCK2_H = @SYS_IOCTL_H_HAVE_WINSOCK2_H@
+SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
 TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@
 UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@
 UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@
 UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@
+UNISTD_H_DEFINES_STRUCT_TIMESPEC = @UNISTD_H_DEFINES_STRUCT_TIMESPEC@
 UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@
 UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 USE_NLS = @USE_NLS@
@@ -1171,6 +1298,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__quote = @am__quote@
@@ -1208,11 +1336,13 @@ lispdir = @lispdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
+mkdir_p = @mkdir_p@
 oldincludedir = @oldincludedir@
 pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1223,20 +1353,25 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 TESTS = \
   basic \
+  bignum \
   binary \
+  brief-vs-stat-zero-kernel-lies \
   colliding-file-names \
   excess-slash \
   help-version \
   function-line-vs-leading-space \
+  ignore-matching-lines \
   label-vs-func        \
   new-file \
   no-dereference \
   no-newline-at-eof \
   stdin \
-  filename-quoting
+  strcoll-0-names \
+  filename-quoting \
+  colors
 
 EXTRA_DIST = \
-  $(TESTS) init.sh t-local.sh
+  $(TESTS) init.sh t-local.sh envvar-check
 
 
 # Note that the first lines are statements.  They ensure that environment
@@ -1244,33 +1379,63 @@ EXTRA_DIST = \
 # The rest are envvar settings that propagate build-related Makefile
 # variables to test scripts.
 TESTS_ENVIRONMENT = \
-  tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.;        \
-  TMPDIR=$$tmp__; export TMPDIR;               \
-  export                                       \
-  VERSION='$(VERSION)'                         \
-  abs_top_builddir='$(abs_top_builddir)'       \
-  abs_top_srcdir='$(abs_top_srcdir)'           \
-  abs_srcdir='$(abs_srcdir)'                   \
-  built_programs="`$(built_programs)`"         \
-  srcdir='$(srcdir)'                           \
-  top_srcdir='$(top_srcdir)'                   \
-  CC='$(CC)'                                   \
-  MAKE=$(MAKE)                                 \
-  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'     \
-  PACKAGE_VERSION=$(PACKAGE_VERSION)           \
-  CONFIG_HEADER='$(abs_top_builddir)/lib/config.h' \
-  ENABLE_DEVICE_MAPPER=$(ENABLE_DEVICE_MAPPER) \
-  PERL='$(PERL)'                               \
-  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)' \
-  REPLACE_GETCWD=$(REPLACE_GETCWD)             \
-  PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \
+  tmp__=$${TMPDIR-/tmp};                               \
+  test -d "$$tmp__" && test -w "$$tmp__" || tmp__=.;   \
+  . $(srcdir)/envvar-check;                            \
+  TMPDIR=$$tmp__; export TMPDIR;                       \
+                                                       \
+  if test -n "$$BASH_VERSION" || (eval "export v=x") 2>/dev/null; then \
+    export_with_values () { export "$$@"; };           \
+  else                                                 \
+    export_with_values ()                              \
+    {                                                  \
+      sed_extract_var='s/=.*//';                       \
+      sed_quote_value="s/'/'\\\\''/g;s/=\\(.*\\)/='\\1'/";\
+      for arg in "$$@"; do                             \
+        var=`echo "$$arg" | sed "$$sed_extract_var"`;  \
+        arg=`echo "$$arg" | sed "$$sed_quote_value"`;  \
+        eval "$$arg";                                  \
+        export "$$var";                                        \
+      done;                                            \
+    };                                                 \
+  fi;                                                  \
+                                                       \
+  export_with_values                                   \
+  VERSION='$(VERSION)'                                 \
+  LOCALE_FR='$(LOCALE_FR)'                             \
+  LOCALE_FR_UTF8='$(LOCALE_FR_UTF8)'                   \
+  AWK=$(AWK)                                           \
+  GREP_OPTIONS=''                                      \
+  LC_ALL=C                                             \
+  abs_top_builddir='$(abs_top_builddir)'               \
+  abs_top_srcdir='$(abs_top_srcdir)'                   \
+  abs_srcdir='$(abs_srcdir)'                           \
+  built_programs="`$(built_programs)`"                 \
+  srcdir='$(srcdir)'                                   \
+  top_srcdir='$(top_srcdir)'                           \
+  CC='$(CC)'                                           \
+  DIFFUTILS_TEST_NAME=`echo $$tst|sed 's,^\./,,;s,/,-,g'` \
+  MAKE=$(MAKE)                                         \
+  MALLOC_PERTURB_=$(MALLOC_PERTURB_)                   \
+  PACKAGE_BUGREPORT='$(PACKAGE_BUGREPORT)'             \
+  PACKAGE_VERSION=$(PACKAGE_VERSION)                   \
+  PERL='$(PERL)'                                       \
+  SHELL='$(SHELL)'                                     \
+  PREFERABLY_POSIX_SHELL='$(PREFERABLY_POSIX_SHELL)'   \
+  REPLACE_GETCWD=$(REPLACE_GETCWD)                     \
+  PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"      \
+  stderr_fileno_=9                                     \
   ; 9>&2
 
 LOG_COMPILER = $(SHELL)
 built_programs = \
   echo 'spy:;@echo $$(PROGRAMS)'                                       \
-    | (cd ../src && MAKEFLAGS= $(MAKE) -s -f Makefile -f - spy)                \
-    | tr ' ' '\n' | sed '/^$$/d; s,$(EXEEXT)$$,,' | sort -u
+    | { (cd ../src && MAKEFLAGS= $(MAKE) -s -f Makefile -f - spy)      \
+          | tr ' ' '\n'                                                        \
+          | sed '/^$$/d; s,$(EXEEXT)$$,,'                              \
+          | sort -u                                                    \
+          | tr '\n' ' '; echo; }                                       \
+    | sed 's/ $$//'
 
 VERBOSE = yes
 all: all-am
@@ -1289,14 +1454,13 @@ $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
        $(am__cd) $(top_srcdir) && \
          $(AUTOMAKE) --gnu tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
          *config.status*) \
            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
          *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
        esac;
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
@@ -1323,7 +1487,7 @@ cscope cscopelist:
        $(MAKE) $(AM_MAKEFLAGS) $<
 
 # Leading 'am--fnord' is there to ensure the list of targets does not
-# exand to empty, as could happen e.g. with make check TESTS=''.
+# expand to empty, as could happen e.g. with make check TESTS=''.
 am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
 am--force-recheck:
        @:
@@ -1344,7 +1508,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
        if test -n "$$am__remaking_logs"; then \
          echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
               "recursion detected" >&2; \
-       else \
+       elif test -n "$$redo_logs"; then \
          am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
        fi; \
        if $(am__make_dryrun); then :; else \
@@ -1462,6 +1626,13 @@ basic.log: basic
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+bignum.log: bignum
+       @p='bignum'; \
+       b='bignum'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 binary.log: binary
        @p='binary'; \
        b='binary'; \
@@ -1469,6 +1640,13 @@ binary.log: binary
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+brief-vs-stat-zero-kernel-lies.log: brief-vs-stat-zero-kernel-lies
+       @p='brief-vs-stat-zero-kernel-lies'; \
+       b='brief-vs-stat-zero-kernel-lies'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 colliding-file-names.log: colliding-file-names
        @p='colliding-file-names'; \
        b='colliding-file-names'; \
@@ -1497,6 +1675,13 @@ function-line-vs-leading-space.log: function-line-vs-leading-space
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+ignore-matching-lines.log: ignore-matching-lines
+       @p='ignore-matching-lines'; \
+       b='ignore-matching-lines'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 label-vs-func.log: label-vs-func
        @p='label-vs-func'; \
        b='label-vs-func'; \
@@ -1532,6 +1717,13 @@ stdin.log: stdin
        --log-file $$b.log --trs-file $$b.trs \
        $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
        "$$tst" $(AM_TESTS_FD_REDIRECT)
+strcoll-0-names.log: strcoll-0-names
+       @p='strcoll-0-names'; \
+       b='strcoll-0-names'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.log --trs-file $$b.trs \
+       $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+       "$$tst" $(AM_TESTS_FD_REDIRECT)
 filename-quoting.log: filename-quoting
        @p='filename-quoting'; \
        b='filename-quoting'; \
@@ -1539,6 +1731,13 @@ filename-quoting.log: filename-quoting
        --log-file $$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'; \
+       $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+       --log-file $$b.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); \
@@ -1701,6 +1900,8 @@ uninstall-am:
        maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
        pdf-am ps ps-am recheck tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # 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.
diff --git a/tests/bignum b/tests/bignum
new file mode 100755 (executable)
index 0000000..a0c95f6
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+# big numbers
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+for tabsize in 2147483648 9223372036854775808; do
+  diff --tabsize=$tabsize /dev/null /dev/null
+  status=$?
+  test $status -eq 0 || test $status -eq 2 || fail=1
+done
+
+Exit $fail
index d7b3943..0110f6e 100755 (executable)
@@ -9,8 +9,8 @@ fail=0
 
 printf '\0'|diff - /dev/null > out 2> err
 
-# diff must exit with status 2, stdout as above, and no stderr.
-test $? = 2 || fail=1
+# diff must exit with status 1, stdout as above, and no stderr.
+test $? = 1 || fail=1
 compare out-exp out || fail=1
 compare /dev/null err || fail=1
 
diff --git a/tests/brief-vs-stat-zero-kernel-lies b/tests/brief-vs-stat-zero-kernel-lies
new file mode 100755 (executable)
index 0000000..7b043db
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/sh
+# Before diff-3.4, diff --brief could mistakenly declare a difference.
+# For example, when comparing a file like /proc/cmdline (for which the linux
+# kernel reports a st_size of 0 even though it is not an empty file) to a
+# copy of that file's contents residing on a "normal" file system.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+# Skip the test unless we have an appropriate file.
+boot=/proc/cmdline
+test -f $boot || skip_ no $boot file
+sz=$(stat --format %s $boot) || skip_ stat --format %s does not work
+test $sz = 0 || skip_ $boot has nonzero size
+
+# /proc/self is not useful on the Hurd, where it always points to "1",
+# so skip this test when /proc/self does not point to a file whose name is
+# the current process ID.
+readlink /proc/self > pid & pid=$!
+wait $pid
+echo $pid > exp
+compare exp pid || skip_ /proc/self is not useful on this system
+
+# There are two code paths to test: one for non-binary and one for binary files.
+# $boot is non-binary.
+cat $boot > ref || framework_failure_
+diff --brief $boot ref > out 2>&1 || fail=1
+compare /dev/null out || fail=1
+
+# /proc/self/cmdline is a NUL-terminated list of argv values,
+# so construct the expected output here:
+printf 'diff\0--brief\0/proc/self/cmdline\0bin\0' > bin || framework_failure_
+# And run the command that is embedded in that output:
+diff --brief /proc/self/cmdline bin > out 2>&1 || fail=1
+compare /dev/null out || fail=1
+
+Exit $fail
diff --git a/tests/colors b/tests/colors
new file mode 100755 (executable)
index 0000000..3ad2206
--- /dev/null
@@ -0,0 +1,129 @@
+#!/bin/sh
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+TZ=UTC0
+export TZ
+
+fail=0
+
+echo a > a
+echo b > b
+
+epoch='1970-01-01 00:00:00'
+touch -t 197001010000.00 a b
+
+e=$(printf '\033')
+tab=$(printf '\t')
+
+gen_exp_u()
+{
+    local epoch_plus="$epoch.000000000 +0000"
+    local rs=$(printf "$e[${rs}m")
+    local hd=$(printf "$e[${hd}m")
+    local ad=$(printf "$e[${ad}m")
+    local de=$(printf "$e[${de}m")
+    local ln=$(printf "$e[${ln}m")
+    printf '%s' \
+"$hd--- a$tab$epoch_plus
++++ b$tab$epoch_plus
+$rs${ln}@@ -1 +1 @@$rs
+$de-a$rs
+$ad+b$rs
+"
+}
+
+gen_exp_c()
+{
+    local epoch_posix_1003_1_2001="Thu Jan  1 00:00:00 1970"
+    local rs=$(printf "$e[${rs}m")
+    local hd=$(printf "$e[${hd}m")
+    local ad=$(printf "$e[${ad}m")
+    local de=$(printf "$e[${de}m")
+    local ln=$(printf "$e[${ln}m")
+    printf '%s' \
+"$hd*** a$tab$epoch_posix_1003_1_2001
+--- b$tab$epoch_posix_1003_1_2001
+$rs***************
+$ln*** 1 ****$rs
+$de! a$rs
+$ln--- 1 ----$rs
+$ad! b$rs
+"
+}
+
+gen_exp_default()
+{
+    printf '%s' \
+"1c1
+< a
+---
+> b
+"
+}
+
+gen_exp_default_colors()
+{
+    local rs=$(printf "$e[${rs}m")
+    local hd=$(printf "$e[${hd}m")
+    local ad=$(printf "$e[${ad}m")
+    local de=$(printf "$e[${de}m")
+    local ln=$(printf "$e[${ln}m")
+    printf '%s' \
+"${ln}1c1$rs
+$de< a$rs
+---
+$ad> b$rs
+"
+}
+
+# Compare with some known outputs
+
+rs=0 hd=1 ad=32 de=31 ln=36
+
+diff --color=auto a b > out
+test $? = 1 || fail=1
+gen_exp_default > exp || framework_failure_
+compare exp out || fail=1
+
+diff --color=never a b > out
+test $? = 1 || fail=1
+gen_exp_default > exp || framework_failure_
+compare exp out || fail=1
+
+diff a b > out
+test $? = 1 || fail=1
+gen_exp_default > exp || framework_failure_
+compare exp out || fail=1
+
+diff --color=always a b > out
+test $? = 1 || fail=1
+gen_exp_default_colors > exp || framework_failure_
+compare exp out || fail=1
+
+diff -u --color=always a b > out
+test $? = 1 || fail=1
+gen_exp_u > exp || framework_failure_
+compare exp out || fail=1
+
+diff -c --color=always a b > out
+test $? = 1 || fail=1
+gen_exp_c > exp || framework_failure_
+compare exp out || fail=1
+
+rs=0 hd=33 ad=34 de=35 ln=36
+diff -u --color=always --palette="rs=0:hd=33:ad=34:de=35:ln=36" a b > out
+test $? = 1 || fail=1
+gen_exp_u > exp || framework_failure_
+compare exp out || fail=1
+
+# Before the fix in http://debbugs.gnu.org/22067,
+# this test would trigger an infinite loop bug.
+mkfifo fifo
+printf '%*s-a' 1000000 > a
+printf '%*s-b' 1000000 > b
+head -c 10 < fifo > /dev/null &
+diff --color=always ---presume-output-tty a b > fifo
+test $? = 141 || fail=1
+
+Exit $fail
diff --git a/tests/envvar-check b/tests/envvar-check
new file mode 100644 (file)
index 0000000..3debef7
--- /dev/null
@@ -0,0 +1,65 @@
+# -*- sh -*-
+# Check environment variables for sane values while testing.
+
+# Copyright (C) 2000-2016 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# 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/>.
+
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+envvar_check_fail=0
+vars='
+  _POSIX2_VERSION
+  _STDBUF_E
+  _STDBUF_I
+  _STDBUF_O
+  BASH_ENV
+  BLOCKSIZE
+  BLOCK_SIZE
+  CDPATH
+  COLUMNS
+  DF_BLOCK_SIZE
+  DU_BLOCK_SIZE
+  EDITOR
+  ENV
+  GREP_OPTIONS
+  LANGUAGE
+  LS_BLOCK_SIZE
+  LS_COLORS
+  OMP_NUM_THREADS
+  POSIXLY_CORRECT
+  QUOTING_STYLE
+  SIMPLE_BACKUP_SUFFIX
+  TABSIZE
+  TERM
+  COLORTERM
+  TIME_STYLE
+  TMPDIR
+  VERSION_CONTROL
+'
+for var in $vars
+do
+  $as_unset $var
+  if eval test \"\${$var+set}\" = set; then
+    echo "$0: the $var environment variable is set --" \
+      ' unset it and rerun this test' >&2
+    envvar_check_fail=1
+  fi
+done
+
+test "$envvar_check_fail" = 1 && exit 1
index 36ea213..339ece7 100755 (executable)
@@ -2,7 +2,7 @@
 # Make sure all these programs work properly
 # when invoked with --help or --version.
 
-# Copyright (C) 2000-2013 Free Software Foundation, Inc.
+# Copyright (C) 2000-2013, 2015-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
diff --git a/tests/ignore-matching-lines b/tests/ignore-matching-lines
new file mode 100755 (executable)
index 0000000..5db9ba3
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/sh
+# --ignore-matching-lines
+
+# Bug reported by Vincent Lefevre in <http://bugs.gnu.org/16864>.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+fail=0
+
+cat <<'EOF' >a
+1a
+2
+3a
+4
+5
+6
+EOF
+
+cat <<'EOF' >b
+1b
+2
+3b
+4
+5
+6
+7
+EOF
+
+cat <<'EOF' >exp
+@@ -1,6 +1,7 @@
+-1a
++1b
+ 2
+-3a
++3b
+ 4
+ 5
+ 6
++7
+EOF
+
+diff -u --ignore-matching-lines 3 a b >out 2>err
+test $? = 1 || fail=1
+sed 1,2d out >outtail || framework_failure+
+compare exp outtail || fail=1
+
+Exit $fail
index bd2048e..97e4e4b 100644 (file)
@@ -1,6 +1,6 @@
 # source this file; set up for tests
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2016 Free Software Foundation, Inc.
 
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -93,6 +93,27 @@ skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
 fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; }
 framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }
 
+# This is used to simplify checking of the return value
+# which is useful when ensuring a command fails as desired.
+# I.e., just doing `command ... &&fail=1` will not catch
+# a segfault in command for example.  With this helper you
+# instead check an explicit exit code like
+#   returns_ 1 command ... || fail
+returns_ () {
+  # Disable tracing so it doesn't interfere with stderr of the wrapped command
+  { set +x; } 2>/dev/null
+
+  local exp_exit="$1"
+  shift
+  "$@"
+  test $? -eq $exp_exit && ret_=0 || ret_=1
+
+  if test "$VERBOSE" = yes && test "$gl_set_x_corrupts_stderr_" = false; then
+    set -x
+  fi
+  { return $ret_; } 2>/dev/null
+}
+
 # Sanitize this shell to POSIX mode, if possible.
 DUALCASE=1; export DUALCASE
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -129,6 +150,7 @@ fi
 #  ? - not ok
 gl_shell_test_script_='
 test $(echo y) = y || exit 1
+f_local_() { local v=1; }; f_local_ || exit 1
 score_=10
 if test "$VERBOSE" = yes; then
   test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9
@@ -201,6 +223,8 @@ else
       *x*) opts_=-x ;;
       *) opts_= ;;
     esac
+    re_shell=$re_shell_
+    export re_shell
     exec "$re_shell_" $opts_ "$0" --no-reexec "$@"
     echo "$ME_: exec failed" 1>&2
     exit 127
@@ -284,13 +308,19 @@ if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \
       fi
     }
   fi
-elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
+elif
+  for diff_opt_ in -U3 -c '' no; do
+    test "$diff_opt_" = no && break
+    diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" </dev/null` && break
+  done
+  test "$diff_opt_" != no
+then
   if test -z "$diff_out_"; then
-    compare_ () { diff -c "$@"; }
+    compare_ () { diff $diff_opt_ "$@"; }
   else
     compare_ ()
     {
-      if diff -c "$@" > diff.out; then
+      if diff $diff_opt_ "$@" > diff.out; then
         # No differences were found, but AIX and HP-UX 'diff' produce output
         # "No differences encountered" or "There are no differences between the
         # files.". Hide this output.
@@ -303,7 +333,7 @@ elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then
       fi
     }
   fi
-elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
+elif cmp -s /dev/null /dev/null 2>/dev/null; then
   compare_ () { cmp -s "$@"; }
 else
   compare_ () { cmp "$@"; }
@@ -442,7 +472,6 @@ setup_ ()
   fi
 
   initial_cwd_=$PWD
-  fail=0
 
   pfx_=`testdir_prefix_`
   test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
@@ -526,8 +555,9 @@ mktempd_ ()
   # Disallow any trailing slash on specified destdir:
   # it would subvert the post-mktemp "case"-based destdir test.
   case $destdir_ in
-  /;;
+  / | //) destdir_slash_=$destdir;;
   */) fail_ "invalid destination dir: remove trailing slash(es)";;
+  *) destdir_slash_=$destdir_/;;
   esac
 
   case $template_ in
@@ -537,20 +567,17 @@ mktempd_ ()
   esac
 
   # First, try to use mktemp.
-  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
-    || fail=1
+  d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` &&
 
   # The resulting name must be in the specified directory.
-  case $d in "$destdir_"*);; *) fail=1;; esac
+  case $d in "$destdir_slash_"*) :;; *) false;; esac &&
 
   # It must have created the directory.
-  test -d "$d" || fail=1
+  test -d "$d" &&
 
   # It must have 0700 permissions.  Handle sticky "S" bits.
-  perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1
-  case $perms in drwx------*) ;; *) fail=1;; esac
-
-  test $fail = 0 && {
+  perms=`ls -dgo "$d" 2>/dev/null` &&
+  case $perms in drwx--[-S]---*) :;; *) false;; esac && {
     echo "$d"
     return
   }
@@ -569,7 +596,7 @@ mktempd_ ()
   i_=1
   while :; do
     X_=`rand_bytes_ $nx_`
-    candidate_dir_="$destdir_/$base_template_$X_"
+    candidate_dir_="$destdir_slash_$base_template_$X_"
     err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \
       && { echo "$candidate_dir_"; return; }
     test $MAX_TRIES_ -le $i_ && break;
index 14d5f49..f503718 100755 (executable)
@@ -50,4 +50,10 @@ compare exp2 out || fail=1
 # expect empty stderr
 compare /dev/null err || fail=1
 
+# Test for Bug#18402.
+printf a > a
+printf b > b
+diff -B a b > out 2>err
+test $? = 1 || fail=1
+
 Exit $fail
diff --git a/tests/strcoll-0-names b/tests/strcoll-0-names
new file mode 100755 (executable)
index 0000000..33c4a3c
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+# Check that diff responds well with two different file names
+# that compare equal with strcoll.  See:
+# http://lists.gnu.org/archive/html/bug-diffutils/2013-03/msg00012.html
+
+. "${srcdir=.}/init.sh"; path_prepend_ ../src
+
+# These two names compare equal in the en_US.UTF-8 locale
+# in current (2013) versions of glibc.
+# On systems where the names do not compare equal,
+# this diff test should still do the right thing.
+LC_ALL=en_US.UTF-8
+export LC_ALL
+name1='エンドカード1'
+name2='ブックレット1'
+
+mkdir d1 d2 || fail=1
+echo x >d1/"$name1" || fail=1
+echo x >d2/"$name2" || fail=1
+
+# This should report a difference, but on the affected systems
+# diffutils 3.3 does not.
+diff d1 d2 && fail=1
+
+Exit $fail